Поток авторизации агента Google не продолжается после запроса grantType=authorization_code

Я разрабатываю агент API AI и пытаюсь реализовать функцию привязки учетной записи. Документация на oauth2-codeflow действительно полезна, и я могу создать мой поток oauth и протестируйте его на Google Play. Все работает нормально до сих пор.

Но когда я пытаюсь проверить это в веб-симуляторе, я продолжаю получать сообщение «Похоже, ваша учетная запись агента еще не связана». Я перешел по URL-адресу отладки и выполнил шаги входа и авторизации.

В соответствии с этим SO Question: я должен ожидать браузер должен быть перенаправлен на https://www.google.com/?result_code=SUCCESS&result_message=Accounts+now+linked, но мой браузер всегда перенаправляется на https://www.google.co.in/?gws_rd=cr&ei=QDOEWfCAPMHA0gSUvJj4Ag, а в агенте я все еще получаю сообщение accounts not linked.

Я вижу, что Google может вызывать конечную точку моих токенов с помощью grantType:authorization_code, и моя служба отвечает, как показано ниже:

POST for /myendpoint/tokens has begun for: grantType:authorization_code  clientId:google-clientid...8

Мой ответ службы:

{
  "token_type":"bearer",
  "access_token":"ab092868.....e804bcac",
  "refresh_token":"e11e6d3054883...b30",
  "expires_in":3600
}

Я рассмотрел предложение в SO Question но мой ответ не имеет дополнительных параметров. Это просто и понятно

Я отправляю приведенный выше ответ через приложение nodejs со следующим кодом:

    res.setHeader('Cache-Control', 'no-store');
    res.setHeader('Pragma', 'no-cache');
    res.setHeader('Content-Type', 'application/json;charset=UTF-8');
    res.send(JSON.stringify(respObj)); 

Я действительно поражен сейчас, и не мог найти выход! Пожалуйста, помогите.


person Phani    schedule 04.08.2017    source источник
comment
Глядя на tools.ietf.org/html/rfc6749#section-5.1 Я добавил дополнительные заголовки в ответ, но все равно бесполезно!   -  person Phani    schedule 07.08.2017
comment
Токен доступа и токен обновления имеют длину 276 символов. Согласно RFC, клиент не должен предполагать или предсказывать длину токенов, но не уверен, что Google ищет конкретную длину токенов, может кто-нибудь помочь!   -  person Phani    schedule 07.08.2017
comment
Фани, я не вижу ничего явно неправильного, основываясь на том, что вы указали в своем вопросе. Вероятно, что-то в нашей цепочке перенаправления ведет себя не так, как ожидалось. Можете ли вы дать мне свой идентификатор поставщика (поле provider=, используемое симулятором?), чтобы я мог просмотреть наши журналы и запустить некоторые тесты? Если вы не хотите размещать его здесь, вы можете предоставить его по электронной почте.   -  person foxxtrot    schedule 09.08.2017
comment
Спасибо, @foxxtrot, я не смог найти способ отправить вам письмо. Я отправил провайдера и другие детали по почте Ахмеду и Сачиту. Не могли бы вы получить от них подробную информацию и помочь мне в решении проблемы?   -  person Phani    schedule 09.08.2017


Ответы (2)


Как было отмечено по электронной почте, похоже, что вы не перенаправляете на тот же URL-адрес, что и параметр redirect_uri, который предоставляется вашей конечной точке авторизации во время процесса входа. Я собираюсь исследовать улучшение обмена сообщениями вокруг этой ошибки.

person foxxtrot    schedule 10.08.2017
comment
Джефф, но, как поясняется в электронном письме, даже после исправления URI перенаправления он по-прежнему не работает. Также спасибо за оперативный ответ. Как вы упомянули в своем дальнейшем ответе, пожалуйста, посмотрите, в чем проблема с веб-симулятором и почему веб-симулятор не работает должным образом для потока oauth. - person Phani; 12.08.2017
comment
Я вижу точно такую ​​же проблему из Великобритании, и мое приложение продолжает отклоняться, хотя я тестировал поток через игровую площадку OAuth 2.0. - person Gaz; 13.09.2017

Меня перенаправили на тот же URL-адрес gws_rd=cr&ei, потому что мы разрабатывали НЕ в США. Попытался подключиться через VPN к Сиэтлу, после чего он сработал и был перенаправлен на домашнюю страницу google.com с результатом_код=УСПЕХ. Я думаю, что Google блокирует регион где-то в процессе.

person Faltek    schedule 22.08.2017
comment
Похоже, это не касается того, что задал вопрос. - person Antimony; 22.08.2017
comment
Не уверен, как это не так? Я должен ожидать, что браузер будет перенаправлен на ...google.com/?result_code=SUCCESS&result_message=Accounts+now+linked, но мой браузер всегда перенаправляется на google.co.in/?gws_rd=cr&ei=QDOEWfCAPMHA0gSUvJj4Ag, и в агенте я все еще получаю сообщение об учетных записях, не связанных. Если вы используете VPN, как указано в моем ответе, вы не будете перенаправлены на gws_rd=cr&ei. Если вы посмотрите на его страну в его перенаправлении Google, это будет google.co.in, который не перенаправляет на google.com (это URL-адрес, по которому отображаются коды результатов). @ Фани, можешь попробовать? - person Faltek; 23.08.2017
comment
В вашем ответе предполагается, что перенаправление с .com на .in является единственной проблемой, но это совсем не очевидно. Однако мы можем увидеть, работает ли это предложение для OP. - person Antimony; 23.08.2017
comment
Это возможное решение. Тем более, что параметры URL-адреса после google.co.in: gws = веб-сервер Google, rd = перенаправлено cr = указанная страна. вот почему VPN работал. Возможно, использование VPN для вас неочевидно. - person Faltek; 23.08.2017
comment
Да, я только что воспользовался VPN, чтобы узнать, сможем ли мы получить успешные коды при запросе из США. Мне интересно, есть ли какая-то региональная блокировка для действий, связанных с учетной записью, только для США на данный момент. - person Faltek; 23.08.2017
comment
@Faltek спасибо за наш ответ, да, это работает, если я использую прокси из США. Но я не могу ожидать, что все мои пользователи, живущие/прокси из США, будут иметь беспрепятственную связь учетной записи с моим агентом. - person Phani; 23.08.2017
comment
Я полагаю, мы оба из-за пределов США - интересно, мы что-то упустили. Обновлю ветку, если узнаю. - person Faltek; 23.08.2017