我在 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 Auth或Auth0,并在前端 UI 中包含一键式 UX。