Google 注销后登录不重定向
Google Signin doesn't redirect after sign out
我正在使用 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 代码下方。会话也没有取消设置,因为当我点击刷新时,用户仍然在我的应用程序上登录(但不是 Google)。
class LogoutHandler(BaseHandler):
def get(self):
self.auth.unset_session()
self.redirect(self.uri_for('home'))
更新 2
如果我在新标签页中打开 link,它会完美退出。如果我将目标更改为“_top”或“_self”,它只会在后端调用 url 但由于未知原因不会在浏览器中执行。
更新 3
通过以下方式找出原因:浏览器(在本例中为 Chrome)正在取消请求。但是为什么?
一个建议是在 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>
正常解决
<a href="/user/logout"></a>
并将 Google 注销脚本移动到用户重定向到的页面。
我正在使用 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 代码下方。会话也没有取消设置,因为当我点击刷新时,用户仍然在我的应用程序上登录(但不是 Google)。
class LogoutHandler(BaseHandler):
def get(self):
self.auth.unset_session()
self.redirect(self.uri_for('home'))
更新 2
如果我在新标签页中打开 link,它会完美退出。如果我将目标更改为“_top”或“_self”,它只会在后端调用 url 但由于未知原因不会在浏览器中执行。
更新 3
通过以下方式找出原因:浏览器(在本例中为 Chrome)正在取消请求。但是为什么?
一个建议是在 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>
正常解决
<a href="/user/logout"></a>
并将 Google 注销脚本移动到用户重定向到的页面。