Вход в Google одним касанием не возвращает idToken
Я пытаюсь сделать так, чтобы новый Google одним нажатием входил в работу, следуя этому руководству:
https://developers.google.com/identity/one-tap/web/get-started
Когда я звоню:
const hintPromise = googleyolo.hint({
supportedAuthMethods: [
"https://accounts.google.com"
],
supportedIdTokenProviders: [
// Google can provide ID tokens -- signed assertions of a user's
// identity -- which you can use to create more streamlined sign-in
// and sign-up experiences.
{
uri: "https://accounts.google.com",
clientId: "YOUR_GOOGLE_CLIENT_ID"
}
]
});
Я получаю ответ в обещании обратного вызова, без ошибок. Но idToken пусто...
hintPromise.then((credential) => {
if (credential.idToken) { // <= THIS IS ALWAYS FALSE!!!
// Send the token to your auth backend.
loginWithGoogleIdToken(credential.idToken);
}
}, (error) => { console.log(error); });
credential
объект выглядит так:
{
authDomain: "http://localhost:3000",
authMethod: "https://accounts.google.com",
displayName: "testName",
id: "testEmail@gmail.com"
}
Кому-нибудь удалось заставить это работать?
2 ответа
У меня была та же проблема, но я смог ее решить, добавив правильные "Авторизованные источники JavaScript" на https://console.developers.google.com/ для моего проекта. Мне нужно было включить URI, включая порт " http://localhost:3000/", а не просто " http://localhost/".
Со страницы Google - "Если вы используете нестандартный порт, вы должны включить его в исходный URI".
Мы только что опубликовали руководство по устранению неполадок: https://developers.google.com/identity/one-tap/web/troubleshooting Troubleshooting
Наиболее важные вещи для проверки следующие:
убедитесь, что вы указали идентификатор клиента Google в любых запросах и что домен, на котором вы работаете с кодом, является авторизованным источником, включая порт. Смотрите документацию для деталей
убедитесь, что у вас есть активная учетная запись Google и включена функция Smart Lock. Попробуйте с обычной учетной записью Gmail с настройками по умолчанию
убедитесь, что вы используете поддерживаемый пользовательский агент. Важно отметить, что режимы эмуляции iOS в Chrome Dev Tools устарели (ожидается исправление)
Если вы все еще не можете заставить его работать или у вас есть какие-либо отзывы, мы будем рады получить от вас сообщение: обратитесь по адресу sso@google.com.