我正在为我的应用程序使用 Google Auth Login
。我的 SignIn
按钮在登录页面上,我的注销是我的标题的一部分,它包含在我的整个应用程序中。单击注销按钮后,我无法将用户从我的应用程序中注销
Login.tpl 代码(其中包含登录按钮)
<div align="middle" class="g-signin2" data-onsuccess="onSignIn"></div>
<meta name="google-signin-client_id" content="CLIENT_ID">
我可以登录但无法注销。注销按钮是 header.tpl 的一部分,它包含在所有文件中,但我收到上面以粗体标记的错误。
Header.tpl代码
<meta name="google-signin-client_id" content="CLIENT_ID">
<a href="/users/auth/login" class = "logout"><i class="fa fa-sign-out pull-right"></i> Log Out</a>
我的JS代码
$(".logout").click(function(event) {
event.preventDefault();
gapi.load('auth2', function () {
var auth2 = gapi.auth2.init({
client_id: 'CLIENT_ID',
cookiepolicy: 'single_host_origin'
});
auth2.then(function(){
// this get called right after token manager is started
auth2.signOut();
console.log('User signed out.');
});
});
window.location = $(this).attr('href');
});
代码永远不会进入定义注销的 block ,因此我在控制台中也没有得到任何东西。
但是,如果我在控制台中运行这段代码,用户会成功注销,但当我在本地主机上运行时,这对应用程序不起作用
任何线索将不胜感激。
最佳答案
我找到了解决方案,似乎您只能在 signinCallback 触发后调用 signOut 方法。据我所知,触发 signinCallback 的唯一方法是在页面上放置一个登录按钮。
在写有我的注销按钮的地方保留一个隐藏的登录按钮对我有用。
将其包含在我的注销按钮所在的 header.tpl 中
<div style = "display:none" align="middle" class="g-signin2" data-cookiepolicy='single_host_origin' data-onsuccess="onSignIn"></div>
关于javascript - Google OAuth2.0 注销不适用于本地主机但在控制台中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41543513/