谷歌一键注册总是返回noCredentialsAvailable



我已经为新的谷歌一键登录/注册设置了一个基本测试。

<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
  <script src="https://smartlock.google.com/client"></script>
  <script>
    window.onGoogleYoloLoad = (googleyolo) => {
      googleyolo.hint({
        supportedAuthMethods: [
          "https://accounts.google.com"
        ],
        supportedIdTokenProviders: [{
          uri: "https://accounts.google.com",
          clientId: "xxxxx-xxxxx.googleusercontent.com"
        }],
        context: "signUp"
      }).then((credential) => {
        console.log(credential);
      }, (error) => {
        console.log(error.type);
      });
    };
  </script>
</body>

我希望上面要么将凭据对象吐出到控制台,要么提示我选择一个谷歌帐户登录。而是抛出"noCredentialsAvailable"错误类型。当我使用 googleyolo.retrieve 承诺时也会发生这种情况。

我目前:

  • 让谷歌帐户登录,其他"谷歌登录"OAuth 流正常工作
  • 正在本地主机:3000加载上述内容(在我的Google API凭据页面上也列为授权来源)

我错过了什么?

我们刚刚发布了一些故障排除指南:https://developers.google.com/identity/one-tap/web/troubleshooting

要检查的最重要的事项如下:

  • 确保您拥有有效的 Google 帐户,并且已启用智能锁功能。我们正在努力尽快删除这些要求,但现在,请尝试使用默认设置的常规Gmail帐户

  • 请务必在任何请求中提供 Google 客户端 ID,并且您运行代码的网域是授权来源(包括端口)。有关详细信息,请参阅文档

  • 检查您是否正在使用受支持的用户代理。重要的是,Chrome Dev Tools 中的 iOS 仿真模式已过时(修复待定)

如果您仍然无法正常工作,或者有任何反馈,我们很乐意听取您的意见:联系 sso@google.com

最新更新