简体   繁体   English

Codeigniter中的Facebook登录错误?

[英]Facebook login error in codeigniter?

Controller: 控制器:

public function login()
{
    $userData = array();
    if($this->facebook->is_authenticated())
    {
        $userProfile = $this->facebook->request('get', '/me?fields=id,first_name,last_name,email');
        $userData['oauth_provider'] = 'facebook';
        $userData['oauth_uid'] = $userProfile['id'];
        $userData['firstname'] = $userProfile['first_name'];
        $userData['lastname'] = $userProfile['last_name'];
        $userData['email'] = $userProfile['email'];
        $userData['password'] = rand();
        $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
    {
        $fbuser = '';
        $data['authUrl'] =  $this->facebook->login_url();
    }



    if($this->session->userdata('loggedIn') == true)
    {
        redirect('test/profile');
    }
    if(isset($_GET['code']))
    {
        $this->google->getAuthenticate();
        $gpInfo = $this->google->getUserInfo();
        $userData['oauth_provider'] = 'google';
        $userData['oauth_uid']      = $gpInfo['id'];
        $userData['firstname']  = $gpInfo['given_name'];
        $userData['lastname']       = $gpInfo['family_name'];
        $userData['email']          = $gpInfo['email'];
        $userData['password'] = rand();
        $userID = $this->user->checkUser($userData);
        $this->session->set_userdata('loggedIn', true);
        $this->session->set_userdata('userData', $userData);
        redirect('test/profile');
    } 
    $data['loginURL'] = $this->google->loginURL();

    $data['student_id'] = $this->session->userdata('student_id');
    $this->load->view('header-inside',$data);
    $this->load->view('login',$data);
}

In this code I have create facebook login and google login on same page ie login.php where google login work perfectly and facebook login also working but it gives some error like when I have login with facebook. 在此代码中,我在同一页面上创建了facebook登录名和google登录名,即login.php,其中google登录名完美运行,facebook登录名也可以运行,但是它给出了一些错误,例如当我使用facebook登录时。 It will show some error like: 它将显示一些错误,例如:

Type: Google_AuthException

Message: Error fetching OAuth2 access token, message: 'invalid_grant'

I don't know why. 我不知道为什么 So, How can I fix this problem ? 那么,如何解决这个问题呢? Please help me. 请帮我。

Thank you 谢谢

分别将Google身份验证和Facebook身份验证的逻辑分开,当您尝试使用Facebook $ _GET ['code']进行身份验证时,会设置此变量,因为该变量输入了google身份验证代码,并给出了错误消息:获取OAuth2访问令牌时出错,消息:“ invalid_grant”

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM