У меня есть приложение 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>"
}
Любая помощь приветствуется.