退出后,Google Signin无法重定向

时间:2015-08-24 12:37:57

标签: javascript google-oauth google-signin

我在我的网站上使用Google登录,直到最近才能正常运行。现在,当用户退出时,Google会退出,但不会将用户重定向到我在脚本中设置的页面。

我使用以下退出脚本:

<script>
  function signOut() {
    var auth2 = gapi.auth2.getAuthInstance();
    auth2.signOut().then(function () {
      console.log('User signed out.');
      window.location = "/user/logout"
    });
  }
</script>

执行控制台日志,但window.location应该重定向用户,但它没有。没有错误,没有任何反应。

更新

我实际上可以看到在后端调用url / user / logout,但它在用户的浏览器中没有做任何事情。在加载url时运行的python代码下面。该会话也未被取消设置,因为当我点击刷新时,用户仍然在我的应用上登录(但不在谷歌上)。

class LogoutHandler(BaseHandler):
  def get(self):
    self.auth.unset_session()
    self.redirect(self.uri_for('home'))

更新2

如果我在新标签中打开链接,则表示完全没问题。如果我将目标更改为&#39; _top&#39;或者&#39; _self&#39;,它只是在后端调用url但是由于未知原因在浏览器中执行。

更新3

通过以下方式找出原因:浏览器(在这种情况下为Chrome)正在取消请求。但为什么呢?

2 个答案:

答案 0 :(得分:0)

一个建议是在GoogleAuth(在您的代码auth2中)完全初始化后退出。查看官方Reference

在你的情况下试试

<script>
  function signOut() {
    var auth2 = gapi.auth2.getAuthInstance();
    auth2.then(function(){
        auth2.signOut().then(function () {
          console.log('User signed out.');
          window.location = "/user/logout"
        });
    });
  }
</script>

答案 1 :(得分:0)

通过正常

解决了这个问题
<a href="/user/logout"></a> 

将Google注销脚本移动到用户重定向到的页面。