我无法找到有关 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 秒,该部分工作正常,但不久之后就会发生这种情况:
我本以为 google sdk 会在某个地方设置 cookie 或其他东西,但我想它不会,或者我应该通过自己的方式处理持久登录状态。我只是想知道这里的正确方法。
我的问题是:Google 如何知道用户是否已使用 Google One Tap UX 登录?
P粉1158400762024-03-30 00:31:08
想出了一个解决办法。 Google 允许您在 div 标签上放置一个名为 data-skip_prompt_cookie="yourcookie"
如果该 cookie 具有真实值,这将跳过一键提示。
我所做的是在 asp.net 中的服务器回调中,我向响应添加了一个 cookie。这可确保只有在有人实际登录后才会禁用提示。
Response.Cookies.Append( "yourcookie", "true");
这可以确保当我的服务器重定向回原始页面时,cookie 存在并且一键点击不会再次出现