Проблема с электронной почтой при входе в систему - PullRequest
0 голосов
/ 14 ноября 2018

Я создал логин в Google, используя CodeIgniter, который работает нормально. Когда я нажимаю кнопку Google image, после ввода всех данных я попадаю на страницу входа в систему, после чего нажимаю кнопку «Далее», после чего меня выводят из логина Google на мой веб-сайт иURL выглядит как

https://example.com/google_login?code=4/lQDGQ6sJog3ZrLKGJtn-VVD3rbzgJl16jMLUrk6wzBIbsu-F6mjlLuPOepeobDLmFYqQL25jo4iAgI9ZnVKTSVY&scope=email%20profile%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/userinfo.profile

, что показывает ошибку 404, но если я удаляю &scope=email%20profile%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/userinfo.profile из URL, тогда отображается вся информация о клиентах.

controller.

public function login()
{
    $userData = array();
    if($this->facebook->is_authenticated()){
        $fbUserProfile = $this->facebook->request('get', '/me?fields=id,first_name,last_name,email,picture');
        $userData['oauth_provider'] = 'facebook';
        $userData['oauth_uid'] = $fbUserProfile['id'];
        $userData['name'] = $fbUserProfile['first_name']." ".$fbUserProfile['last_name'];
        $userData['email'] = $fbUserProfile['email'];
        $userData['user_image'] = $fbUserProfile['picture']['data']['url'];
        $userID = $this->user->checkUser($userData);
        if(!empty($userID))
        {
            $data['userData'] = $userData;
            $this->session->set_userdata('userData',$userData);
        }
        else
        {
           $data['userData'] = array();
        }
        $data['logoutURL'] = $this->facebook->logout_url();
    }
    else
    {
        $data['authURL'] =  $this->facebook->login_url();
    }
    $data['loginURL'] = $this->google->loginURL();
    $this->load->view('login',$data);
}

public function google_login()
{
    if($this->session->userdata('loggedIn') == true){
        redirect('profile');
    }
    if(isset($_GET['code'])){
        if($this->google->getAuthenticate()){
            $gpInfo = $this->google->getUserInfo();
            $userData['oauth_provider'] = 'google';
            $userData['oauth_uid']         = $gpInfo['id'];
            $userData['name']     = $gpInfo['given_name'].' '.$gpInfo['family_name'];
            $userData['email']             = $gpInfo['email'];
            $userData['user_image']         = !empty($gpInfo['picture'])?$gpInfo['picture']:'';
            $userID = $this->Google_user->checkUser($userData);
            $this->session->set_userdata('loggedIn', true);
            $this->session->set_userdata('userData', $userData);
            redirect('profile');
        }
    }
}

view: login.php

<a href="<?php echo $loginURL; ?>" class="google btn-block"><i class="fa fa-google-plus"></i></a>

config / route.php

$route['google_login'] = "welcome/google_login";

config / google.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');
$config['google']['client_id']        = '**********************************************';
$config['google']['client_secret']    = '************************';
$config['google']['redirect_uri']     = 'https://example.com/google_login';
$config['google']['application_name'] = 'Login to Example';
$config['google']['api_key']          = '';
$config['google']['scopes']           = array(); 

Итак, как мне исправитьЭта проблема?Пожалуйста, помогите мне.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...