Google Smartlock/Googleyolo не возвращает сохраненный пароль

Согласно документации (https://developers.google.com/identity/one-tap/web/retrieve-credentials), мы можем получить сохраненный пароль точно так же, как при использовании Credential Management API в Chrome.

Я уже вошел в Google в своем браузере. Я попытался использовать googleyolo api, используя функцию .retrieve(), как задокументировано:

const retrievePromise = googleyolo.retrieve({
  supportedAuthMethods: [
    "https://accounts.google.com",
    "googleyolo://id-and-password"
  ],
  supportedIdTokenProviders: [
    {
      uri: "https://accounts.google.com",
      clientId: "*********-**********.apps.googleusercontent.com"
    }
  ]
}).then(res => console.log(res));

и он возвращает только idToken, пароль не возвращается.

Но как ни странно, когда я попытался использовать Credential Management API в Chrome, мои сохраненные учетные данные появились.

Вопрос в следующем: 1. Что пошло не так? 2. Откуда googleyolo взял список учетных данных? Поскольку я проверил свой https://passwords.google.com и мои учетные данные существуют. 3. Что мне делать? сделать / устранить неполадки, чтобы получить мои учетные данные пароля?


person Dimitrij Agal    schedule 08.02.2018    source источник


Ответы (2)


Извините за путаницу, пароли доступны только в браузерах, поддерживающих Credential Management API (который библиотека использует для извлечения паролей). Обновим документацию, чтобы прояснить это.

person Steven    schedule 08.03.2018

Не уверен, откуда вы получаете «googleyolo://id-and-password» в аргументе supportAuthMethods. В вашей ссылке конкретно указано, что поддерживается только Google.

googleyolo получает список пользователей из вашего текущего браузера. Вы получите больше пользователей, если у вас есть несколько пользователей, вошедших в учетную запись Google.

Когда я реализовал вход в Google, я просто использую idtoken для подтверждения личности пользователя. При вызове googleyolo пароль не возвращается.

После того, как вы подтвердите личность пользователя, вы можете использовать метод, предоставленный для входа.

useGoogleIdTokenForAuth(credential.idToken);
person Wen W    schedule 20.02.2018
comment
Спасибо за Ваш ответ. Я получил это из их документации здесь developers.google.com/identity/one -tap/web/retrieve-credentials , см. раздел Запрос сохраненных учетных данных, в котором указано googleyolo://id-and-password. Также в разделе Обработка результатов запроса учетных данных указано, что пароль можно получить. Или я неправильно понял документацию? - person Dimitrij Agal; 21.02.2018
comment
Похоже, вы можете получить пароль только тогда, когда пользователь вводит его через вашу реализацию процесса входа. необязательно googleyolo://id-and-password, чтобы получить учетные данные на основе пароля, когда учетные записи Google не сохранены. - person Wen W; 21.02.2018