无限重定向循环在谷歌一个点击登录



我很难找到任何关于Google One Tap UX的文档,以及如何在登录重定向后坚持登录状态。我使用的是html api,检查这里的代码:

setTimeout(function () {
let target = document.getElementById('google-signin');
target.innerHTML = '<div id="g_id_onload" data-client_id="x" data-context="signin" data-login_uri="https://x/account/google/callback" data-auto_select="true" data-itp_support="true"></div>';
var s = document.createElement("script");
s.src = 'https://accounts.google.com/gsi/client';

document.head.appendChild(s);

console.log('appended script', s);
}, 30000);
</script>

实际上,我将这个登录弹出窗口延迟了30秒,这部分工作得很好,但很快就会发生这样的事情:

  1. 已登录
  2. 重定向发生
  3. 服务器重定向回引用页面
  4. 30秒后进程再次启动

我本以为谷歌sdk会设置一个cookie或某处的东西,但我想它没有,要么我应该通过我自己的手段处理持久的登录状态。我只是想知道正确的方法。

我的问题是:谷歌如何知道用户是否已经使用谷歌一键用户体验登录?

找到解决办法了。谷歌允许你在你的div标签上放一个属性,叫做data-skip_prompt_cookie="yourcookie",如果这个cookie有一个真值,它会跳过一次点击提示。

我所做的是在我的服务器回调在asp.net我添加了一个cookie的响应。这确保了只有当有人实际登录时才会禁用提示符。

Response.Cookies.Append(
"yourcookie", "true");

这确保当我的服务器重定向回原始页面时,cookie存在并且一次点击不会再次出现

相关内容

最新更新