Я хочу внедрить фрикционный знак для моего веб-приложения.
После некоторых поисков я обнаружил, что есть два решения:
Мой вопрос: в чем разница между двумя API (если есть) и каковы возможные варианты использования для обоих.
Из того, что я понял, оба позволяют нам сохранять учетную информацию. Но преимущество смарт-блокировки заключается в том, что сохраненные учетные данные могут использоваться и в соответствующих приложениях для Android.
Благодаря !
Примечание. Я намерен поддерживать логин из нескольких источников (google, facebook, linkedin и т.д.), А не только Google.
TL; DR в библиотеке входа/автоматической регистрации в одно касание включено Управление учетными данными. Вероятно, вы должны просто использовать библиотеку: https://developers.google.com/identity/one-tap/web/get-started
Детали
Библиотека JavaScript поддерживает создание учетных записей с помощью учетных записей Google (с помощью упрощенного встроенного UX, который может отображаться на страницах контента, вместо этого пользователь должен перейти к традиционному UX на основе кнопок и выяснить, какую кнопку/параметр выбрать и взаимодействовать с всплывающим окном/переадресации)
А для возвращающихся пользователей библиотека позволяет программно извлекать на странице загрузку как токенов для существующих пользователей одного входа/традиционного входа в 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);
}
}
Подробнее см. В документации. В настоящее время в библиотеке не поддерживаются форматы идентификации, отличные от Google/пароля, вам необходимо в настоящий момент реализовать входной поток с другими упомянутыми SDK-провайдерами идентификации.
Также обратите внимание, что любые входы, связанные с учетной записью Google (OAuth-токены или сохраненные и синхронизированные пароли) будут доступны для Android и Chrome (и остальные учетные записи для токенов).
Пожалуйста, оставляйте комментарии для любых последующих вопросов.