Не удается установить связь с аккаунтом для Google Actions после успешного кода аутентификации и токена доступа

У меня есть приложение Google Assistant с включенной привязкой аккаунтов. Я получаю сообщение об ошибке при связывании учетной записи с приложением с помощью потока «Код авторизации».

Я протестировал процесс связывания учетной записи с кодом авторизации через oauthplayground (https://developers.google.com/oauthplayground). Я получаю код Auth и позже использую его для правильного создания access_token и refresh_token.

Однако, когда я выполняю фактическую привязку учетной записи с использованием URL-адреса для аутентификации помощника (https://assistant.google.com/services/auth/handoffs/auth/start?account_name= {accountname} & provider = {projectid} & scopes = openid + email + profile & return_url = https://www.google.com), я получаю ошибку при связывании.

Поток пользователя:
После запуска потока OAuth пользователь выполняет вход, а затем дает свое согласие. После завершения шага согласия пользователь перенаправляется обратно к исходному redirect_uri с кодом авторизации и значением состояния.

Пример: https://oauth-redirect.googleusercontent.com/r/ {projectid}. ? code = {код авторизации} & state = {значение состояния}

Эта страница перенаправляет пользователя на страницу завершения oauth и правильно передает значения состояния и кода.
Пример: https://assistant.google.com/services/auth/handoffs/auth/complete?state= {значение состояния} & code = {код аутентификации}

Пользователь перенаправляется на указанный ниже URL в конце процесса аутентификации: https://www.google.com/?result_code=FAILURE&result_message=Account+linking+failed

Мой провайдер службы аутентификации возвращает действительный код и состояние правильно. Сервис My Token возвращает действительную информацию о токене в обмен на код авторизации. Вот ответ:

{
  "access_token": "<access token>", 
  "token_type": "Bearer", 
  "expires_in": 120, 
  "refresh_token": "<refresh token>"
}

Любая помощь приветствуется.


person Puru    schedule 13.10.2017    source источник
comment
Можете ли вы обновить свой вопрос, чтобы уточнить (и удалить конфиденциальную информацию), что вы получаете на последнем этапе привязки учетной записи (обмен, ведущий к коду FAILURE) и что вы возвращаете?   -  person Prisoner    schedule 14.10.2017
comment
Спасибо. Я обновил вопрос, добавив шаги и последовательность действий пользователя вместе с запросом и ответом.   -  person Puru    schedule 14.10.2017


Ответы (1)


Я думаю, это была проблема с кешированием. Теперь он работает правильно.

В конце потока пользователь перенаправляется на google.com с успешным кодом результата.

то есть: https://www.google.com/?result_code=SUCCESS&result_message=Accounts+now+linked

У меня были все шаги за последние 2 дня, и я ничего не обновлял с точки зрения кода или конфигурации. Раньше не работало. Но теперь он работает правильно.

person Puru    schedule 17.10.2017