gpt4 book ai didi

oauth - gapi.auth.signOut();不工作我迷路了

转载 作者:行者123 更新时间:2023-12-03 15:20:22 25 4
gpt4 key购买 nike

下面是我用来登录谷歌的代码。我在 login.php 上有一个 ID 为授权按钮的元素。当点击它登录就好了。

我的头文件中有一个注销链接。当我单击注销时,它会调用 gapi.auth.signOut();然后它销毁 session 并重定向回 l​​ogin.php

据我所知,这种情况会发生,但它只是将用户通过谷歌登录回我们的网站。这是一个痛苦,因为我们的一些用户从谷歌切换到 facebook 登录。

在此先感谢您的帮助。

function handleClientLoad() {
gapi.client.setApiKey(apiKey);
window.setTimeout(checkAuth, 1);
}

function checkAuth() {
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true}, handleAuthResult);
}

function handleAuthResult(authResult) {
var authorizeButton = document.getElementById('authorize-button');


if (authResult && !authResult.error) {
//authorizeButton.style.visibility = 'hidden';
makeApiCall();
} else {
//authorizeButton.style.visibility = '';
authorizeButton.onclick = handleAuthClick;
}
}

function handleAuthClick(event) {
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthResult);
return false;
}

function signOut() {
gapi.auth.signOut();
}


function makeApiCall() {

gapi.client.load('oauth2', 'v2', function() {
var request = gapi.client.oauth2.userinfo.get();

request.execute(function(logResponse) {

var myJSON = {
"myFirstName": logResponse.given_name,
"myLastName": logResponse.family_name,
"name": logResponse.name,
"socialEmailAddress": logResponse.email
};

gapi.client.load('plus', 'v1', function() {

var request = gapi.client.plus.people.get({
'userId': 'me'
});
request.execute(function(logResponse2) {
//alert(JSON.stringify(logResponse));
myJSON['profilePicture'] = logResponse2.image.url;
myJSON['socialId'] = logResponse2.id;
//alert(JSON.stringify(myJSON));
$.ajax({
type: "POST",
url: "includes/login-ajax.php",
data: "function=googleLogin&data=" + JSON.stringify(myJSON),
dataType: "html",
success: function(msg) {

if (msg == 1) {

//window.location = "settings.php";
}
}
});
});
});
});
});
}

最佳答案

确保您已将 cookie-policy 设置为 none 以外的值。在您的登录按钮代码中。例如:

function handleAuthClick(event) {
gapi.auth.authorize(
{
client_id: clientId,
scope: scopes,
immediate: false,
cookie_policy: 'single_host_origin'
},
handleAuthResult);
return false;
}

请注意,如果您从 localhost 运行,则注销将不起作用。

关于oauth - gapi.auth.signOut();不工作我迷路了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22086301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com