javascript - Google OAuth2.0 注销不适用于本地主机但在控制台中工作

标签 javascript oauth-2.0 google-oauth google-signin

我正在为我的应用程序使用 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/

相关文章:

javascript - Facebook "Invalid redirect_uri",但 url 对我来说看起来不错

oauth-2.0 - 框 oauth2 : Invalid grant_type parameter or parameter missing

reactjs - 谷歌API认证: blocked origin for the client

oauth-2.0 - 关于 Google Drive SDK 和 OAuth 2 的好教程吗?

javascript - 更改背景颜色/将边框设为当天

javascript - 检查history.back()是否不导航

node.js - cron 作业的 Spotify API 授权

heroku - Q : Google OAuth 2 Error 400: redirect_uri_mismatch but redirect uri is compliant and already registered in Google Cloud Console

javascript - d3默认按键功能是什么?

javascript - YUI3 Datatable - 行格式和选择