我已经为新的谷歌一键登录/注册设置了一个基本测试。
<!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