контроллер:
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);
}
В этом коде я создаю логин facebook и логин google на той же странице, то есть login.php, где логин google работает отлично и логин facebook тоже работает, но это выдает некоторую ошибку, например, когда у меня логин через facebook. Это покажет некоторую ошибку как:
Type: Google_AuthException
Message: Error fetching OAuth2 access token, message: 'invalid_grant'
Я не знаю почему. Итак, как я могу решить эту проблему? Пожалуйста, помогите мне.
Спасибо
Разделяя логику аутентификации Google и аутентификации Facebook, эта переменная устанавливается при попытке аутентификации через Facebook $ _GET [‘code’], из-за которой она вводит код аутентификации Google и выдает ошибку Сообщение: ошибка при получении токена доступа OAuth2, сообщение: «invalid_grant»
Других решений пока нет …