2

我对谷歌今年早些时候宣布的 One Tap 登录有点困惑。我们的应用程序已经在 Chrome 中使用 Credential Management API,它本质上为用户提供了基于用户在上次访问时为我们的站点保存的凭据(保存在 chrome 中的密码)的登录选项。当我阅读 One tap sign in 的文档时,它承诺做同样的事情,但使用谷歌的客户端 api id。我们的应用程序有自己的 ID 提供者和我们自己的用户名和密码数据库,从文档看来,一键登录不支持自定义 ID 提供者。谁能更清楚地说明这一点,我为什么要用一个来对付另一个?

谢谢卡提克

4

2 回答 2

2

我看到两个主要区别:

  • One Tap 是无密码的——它使用基于令牌的登录,从不暴露用户的密码。Chrome 凭据管理 API 在 Chrome 的密码存储中存储和检索实际密码。

  • One Tap 完全基于 Web - Chrome 凭据管理 API 依赖于 Chrome 的特定实现。One Tap 是一个纯粹基于 Web 的工作流程,因此它可以跨浏览器工作。

在我看来,One Tap 是一种更好的长期登录解决方案。凭据管理 API 是实验性的,目前仅在 Chrome 中受支持。

https://developer.mozilla.org/en-US/docs/Web/API/Credential_Management_API#Browser_compatibility

于 2017-12-02T14:46:23.307 回答
2

我在 Google 领导一键式/自动登录库的产品开发,我们对其进行设计,使该库包含凭据管理 API,并扩展为在帐户创建、安全无密码和跨浏览器支持方面提供帮助

特别是,如果您使用如下代码请求现有凭据:

googleyolo.retrieve({
  supportedAuthMethods: [
    "https://accounts.google.com",
    "googleyolo://id-and-password"
  ],
  supportedIdTokenProviders: [
    { uri: "https://accounts.google.com", clientId: "CLIENT_ID" }
  ]
});

然后将返回凭据管理 API 中保存的任何用户名/密码(在支持 API 的浏览器中)以及 Google 帐户的令牌数据。一键式/自动登录 JavaScript 库封装了凭据管理 API 以进行凭据检索。

此外,该库提供了googleyolo.hint一种显示电子邮件选择器的方法,用于一键选择已验证的电子邮件地址以帮助创建新帐户,或链接到现有帐户,然后下次使用令牌自动登录,而不是密码,所有浏览器,只要同一个 Google 帐户处于活动状态。

我建议使用一键式/自动登录库并使用令牌和密码以获得辅助注册,让现有用户自动登录,并提供即使浏览器不支持的功能凭证管理 API。

至于关于使用您自己的用户名/密码数据库的问题,这个库的希望是您可以实现创建帐户并使用代表用户身份的OpenID Connect ID 令牌自动登录这些帐户和现有帐户的能力。通过一键式/自动登录 UX,这些不仅更实用,而且比密码更安全,并减少了弱密码/重复使用密码的创建。请考虑这个或更好的托管身份验证解决方案,如Firebase AuthAuth0,并在前端 UI 中包含一键式 UX。

于 2017-12-04T07:01:14.910 回答