我在我的网站上登录google,除了一件事情以外,它正常工作。如果我在浏览器中登录了我的Gmail帐户,登录脚本也会自动登录我的网站。尽管成功执行了注销功能,但渲染的按钮仍然显示" Signed In"然后登录我。这里是如何设置登录
<script src="js/script.js"></script>
<script src="https://apis.google.com/js/platform.js?onload=googleLoad" async defer></script>
在我的script.js文件中
function googleLoad() {
gapi.load('auth2', function() {
gapi.auth2.init();
});
};
function googleSignIn(googleUser) {
// Useful data for your client-side scripts:
var profile = googleUser.getBasicProfile();
console.log("Email: " + profile.getEmail());
var id_token = googleUser.getAuthResponse().id_token;
// console.log("ID Token: " + id_token);
var fullName = profile.getName(),
imageUrl = profile.getImageUrl(),
email = profile.getEmail(),
provider = 'Google';
};
function loggedOut(href){
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
document.location = href;
});
};
$('#log-out').on('click', function(e){
e.preventDefault();
var href = $(this).attr('href');
loggedOut(href);
});
当你加载页面时,googleSignIn
函数被执行并且我登录。显然这是在加载时执行的默认函数的名称。如果我更改了该功能的名称,它将无法运行。这样可以解决问题,但我如何(何时)手动执行该功能?
然后出现退出按钮,点击该按钮确实可以控制消息并成功登出。但是在下一页加载时我会因为googleSignIn
而再次登录。我做错了什么?
答案 0 :(得分:0)
唉,代码没有任何问题。我发现注销功能不适用于localhost。在实时服务器上测试它,一切都很好。
感谢@class在另一个related question
上提到它