Неявная привязка аккаунта Google к обмену токенами не происходит - PullRequest
0 голосов
/ 19 марта 2019

Чтобы добиться привязки аккаунта между базой данных Google Firestore, которая использует аутентификацию Google с электронной почтой / паролем, и аккаунтом Google пользователя (например, на Действиях на устройстве Google), я пытаюсь реализовать неявный поток связывания аккаунтов Google как описано здесь:

https://developers.google.com/actions/identity/google-sign-in-oauth?creation=no

На консоли я указал URL авторизации и URL для обмена токенами.

enter image description here

URL авторизации открывает веб-логин. На этом экране - когда пользователь успешно входит в Firebase с помощью электронной почты / пароля - я создаю токен из идентификатора пользователя и возвращаю его по предоставленному URL перенаправления, включая состояние и тип токена, как указано в документации:

https://oauth -redirect.googleusercontent.com / г / YOUR_PROJECT_ID # access_token = access_token & token_type = носителем и состояние = STATE_STRING

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

Но я просто не понимаю, что с этим делать дальше. Насколько я понимаю документы, после того, как учетная запись связана, она должна вызывать конечную точку обмена токенами для обмена этим пользовательским токеном с токеном доступа и / или обновления и дополнительной информацией о пользователе. Чтобы увидеть входящий запрос в конечной точке обмена, я предоставил простой скрипт, который выглядит следующим образом:

exports.exchangeToken = functions.https.onRequest((req, res) => {
  console.log(JSON.stringify(req.headers))
  res.send(JSON.stringify(req.headers))
}

но по логам он никогда не вызывается. Вместо этого веб-крючок, который я настроил в разделе выполнения DialogFlow, вызывается напрямую. Чего мне не хватает, чтобы инициировать обмен токенами и получить userID моего проекта firebase до того, как будет вызвано выполнение?

...