Google 智能锁与凭证管理 API
Google Smart Lock vs Credential Management API
我想为我的 Web 应用程序实施无摩擦登录过程。
经过一番搜索,我发现有两种解决方案:
我的问题是,这两个 API(如果有的话)有什么区别,这两个的可能用例是什么。
据我了解,两者都允许我们保存帐户相关信息。但智能锁的优势在于,保存的凭据也可以在相应的 android 应用程序中使用。
谢谢!
注意:
我打算支持从多个来源(google、facebook、linkedin 等)登录,而不仅仅是 google.
TL;DR 一键注册/自动登录库包括凭据管理。您可能应该只使用库:https://developers.google.com/identity/one-tap/web/get-started
详情
JavaScript 库支持使用 Google 帐户创建帐户(通过可显示在内容页面上的简化内联用户体验,用户不必导航到传统的基于按钮的用户体验并弄清楚选择哪个 button/option 并与之互动 pop-up/redirect)
对于返回的用户,该库允许您以编程方式在页面加载时检索现有的一键式/传统 Google 登录用户的令牌以及通过凭据管理的密码 API 在支持它的浏览器中。您可以使用如下代码执行此操作:
const retrievePromise = googleyolo.retrieve({
supportedAuthMethods: [
"https://accounts.google.com",
"googleyolo://id-and-password"
],
supportedIdTokenProviders: [
{
uri: "https://accounts.google.com",
clientId: "YOUR_GOOGLE_CLIENT_ID"
}
]
});
retrievePromise.then((credential) => {
if (credential.password) {
// An ID (usually email address) and password credential was retrieved.
// Sign in to your backend using the password.
signInWithEmailAndPassword(credential.id, credential.password);
} else {
// A Google Account is retrieved. Since Google supports ID token responses,
// you can use the token to sign in instead of initiating the Google sign-in
// flow.
useGoogleIdTokenForAuth(credential.idToken);
}
}
有关详细信息,请参阅 documentation。该库目前不支持 non-Google/password 形式的身份,您目前必须自己使用其他提到的身份提供商 SDK 实现登录流程。
另请注意,与 Google 帐户关联的任何登录(基于 OAuth 令牌或存储和同步的密码)将在 Android 和 Chrome 中可用(以及基于令牌的帐户的其余部分)。
如有任何后续问题,请发表评论。
我想为我的 Web 应用程序实施无摩擦登录过程。
经过一番搜索,我发现有两种解决方案:
我的问题是,这两个 API(如果有的话)有什么区别,这两个的可能用例是什么。
据我了解,两者都允许我们保存帐户相关信息。但智能锁的优势在于,保存的凭据也可以在相应的 android 应用程序中使用。
谢谢!
注意: 我打算支持从多个来源(google、facebook、linkedin 等)登录,而不仅仅是 google.
TL;DR 一键注册/自动登录库包括凭据管理。您可能应该只使用库:https://developers.google.com/identity/one-tap/web/get-started
详情
JavaScript 库支持使用 Google 帐户创建帐户(通过可显示在内容页面上的简化内联用户体验,用户不必导航到传统的基于按钮的用户体验并弄清楚选择哪个 button/option 并与之互动 pop-up/redirect)
对于返回的用户,该库允许您以编程方式在页面加载时检索现有的一键式/传统 Google 登录用户的令牌以及通过凭据管理的密码 API 在支持它的浏览器中。您可以使用如下代码执行此操作:
const retrievePromise = googleyolo.retrieve({
supportedAuthMethods: [
"https://accounts.google.com",
"googleyolo://id-and-password"
],
supportedIdTokenProviders: [
{
uri: "https://accounts.google.com",
clientId: "YOUR_GOOGLE_CLIENT_ID"
}
]
});
retrievePromise.then((credential) => {
if (credential.password) {
// An ID (usually email address) and password credential was retrieved.
// Sign in to your backend using the password.
signInWithEmailAndPassword(credential.id, credential.password);
} else {
// A Google Account is retrieved. Since Google supports ID token responses,
// you can use the token to sign in instead of initiating the Google sign-in
// flow.
useGoogleIdTokenForAuth(credential.idToken);
}
}
有关详细信息,请参阅 documentation。该库目前不支持 non-Google/password 形式的身份,您目前必须自己使用其他提到的身份提供商 SDK 实现登录流程。
另请注意,与 Google 帐户关联的任何登录(基于 OAuth 令牌或存储和同步的密码)将在 Android 和 Chrome 中可用(以及基于令牌的帐户的其余部分)。
如有任何后续问题,请发表评论。