Переход с Google OAuth1 на OAuth2 - снова отображается экран согласия
Я следовал документации по миграции с OAuth1 на OAuth2 и смог получить новые refresh_token и access_tokens.
Проблема в том, что Google снова отображает экран подтверждения и перечисляет все области. Весь смысл переноса учетных данных заключается в том, что пользователь не должен видеть экран подтверждения.
Вот мой POST-запрос на миграцию:
POST https://accounts.google.com/o/oauth2/token HTTP / 1.1. Авторизация: OAuth realm="",oauth_consumer_key=[КЛЮЧ КОНСУМЕРА]",oauth_nonce="2c06a5da90ec4a62b737bdfb3922d675",oauth_suth_sta_m_2_1_1_Time_Time_Time_2_1_1_1_1 ="1411677478",oauth_token="[OAUTH TOKEN]",oauth_signature="oL%2b2JdOBCKcND8cSHSmHQMRN5NI%3d" Тип содержимого: application/x-www-form-urlencoded Хост: accounts.google.com Длина содержимого: 194 Expect Length: 194 100-продолжение соединения: Keep-Alive grant_type=urn%3aietf%3aparams%3aoauth%3agrant-type%3amigration%3aoauth1&client_id=&client_secret=[GENERATED SIGNATURE]
Более того, если я проверю страницу https://security.google.com/settings/security/permissions?pli=1 чтобы увидеть, к какому приложению у меня есть доступ, я вижу там свое новое приложение со всеми областями действия этого старого приложения. имел.
Я также удостоверился, что я не включаю
Какие-нибудь мысли? Я ошибаюсь, полагая, что пользователь не увидит экран подтверждения после миграции?
2 ответа
Можете ли вы уточнить шаги и когда пользователь увидит страницу подтверждения? Какие области действия у ваших токенов OAuth2 после миграции?
Миграция предназначена для токена OAuth1, который вы сохранили на своем сервере. На шаге миграции вы конвертируете их в токен обновления OAuth2. Вы можете начать использовать их, чтобы совершать звонки в API Google без того, чтобы пользователь появлялся на вашем сайте.
В зависимости от того, как вы получили эти токены OAuth1, вам нужно изменить этот механизм, чтобы начать получать токены OAuth2. В общем, вы хотите сделать это только для пользователей, у которых уже нет сохраненного токена обновления, поскольку нет смысла получать новый токен обновления (если вы это сделаете, они могут увидеть экран подтверждения).
Вы правы, смысл переноса учетных данных заключается в том, что пользователь не должен видеть экран подтверждения. Но если вы добавили какие-либо новые области, возможно, для использования некоторых API, большинство из них требуют, чтобы пользователь предоставил разрешение, и поэтому снова появится экран подтверждения.