我试图在我的网站上实施Google登录。 我已经完成了Authenticate with Google.的步骤 我登录谷歌后执行此功能:
function onSignIn(googleUser) {
var googleResponse = googleUser.getAuthResponse();
google_login(googleResponse, true);
};
Google_login功能:
function google_login(res) {
var httpObject = getXMLHTTPObject();
var ajax_url = siteURL + 'google_login';
var params = 'token='+encodeURIComponent(res.id_token);
httpObject.open('POST', ajax_url, true);
httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httpObject.onreadystatechange = function() {
if (httpObject.readyState == 4) {
if(httpObject.responseText == 'true') {
window.location = httpObject.responseURL;
}
else {
if(httpObject.responseText == '') {
window.location = siteURL + 'login_again';
}
else {
window.location = siteURL + 'google_login_error';
}
}
}
};
httpObject.send(params);
}
在我的模型中,我使用此代码:
private $google_client;
function Google_model() {
parent::__construct();
$this->google_client = new Google_Client(['client_id' => 'my_client_id','client_secret' =>'my_client_secret']);
}
function check_google_user($access_token) {
$payload = $this->google_client->verifyIdToken($access_token);
if ($payload) {
return $payload;
}
return false;
}
在我的控制器中,我正在调用 check_google_user 功能。 这里出现了一种奇怪的行为。有时,当我尝试登录时,我得到了有效载荷,有时候没有(PS:我试图在同一天用同一个用户登录)。我做错了吗?
编辑:
我收到此错误:捕获异常:无法在2017-01-25T16:20:24 + 0200之前处理令牌
答案 0 :(得分:-2)
通过在firebase JWT.php文件中注释这些行来解决这个问题:
$('.marquee').marquee({
gap: 50,
duplicated: true
});