1

Я пытаюсь получить токен обновления для Google из App Services, но я не могу.Запрашивать токен обновления. Не удалось обновить токены в магазине токенов

Лог говорит

2016-11-04T00: 04: 25 PID [500] Многословный Получен запрос: GET https://noteappsvr.azurewebsites.net/.auth/login/google?access_type=offline 2016-11-04T00: 04: 25 PID [500] конфигурации Многословной Загрузка OpenID из https://accounts.google.com/.well-known/openid-configuration

2016-11-04T00: 04: 25 PID [500] Многословный Загрузка OpenID эмитента ключи от https://www.googleapis.com/oauth2/v3/certs

2016-11-04T00: 04: 25 PID [500] Информация Перенаправление: https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=299597639...04000925%26redir%3D&access_type=offline

2016-11-04T00: 05: 17 PID [500] Многословный Получен запрос: GET https://noteappsvr.azurewebsites.net/.auth/login/google/callback?state=nonce%3D5656e1dd...&prompt=none

2016-11-04T00: 05: 17 PID [500] Многословный Вызов во внешний HTTP POST конечной https://www.googleapis.com/oauth2/v4/token.

2016-11-04T00: 05: 18 PID [500] Информация для пользователя заполняется для '[email protected]'. Поставщик: «google».

2016-11-04T00: 05: 18 PID [500] Подробное письмо «AppServiceAuthSession» для сайта «noteappsvr.azurewebsites.net». Длина: 728.

2016-11-04T00: 05: 18 PID [500] Информация Перенаправление: https://noteappsvr.azurewebsites.net/.auth/login/done#token=%7B%22authenti...d6ffa9924e5%22%7D%7D

2016-11-04T00: 05: 50 PID [500] Многословный Получен запрос: GET https://noteappsvr.azurewebsites.net/.auth/refresh

2016-11-04T00: 05: 50 PID [500] Подтверждена достоверная проверка JWT. Тема: «sid: 4fd4f6 ...», эмитент: «https://noteappsvr.azurewebsites.net/».

2016-11-04T00: 05: 50 PID [500] Предупреждение. Запрос обновления, выданный sid: 4fd4f6 ... не удалось, поскольку в магазине токенов не было обнаружено токенов обновления.

2016-11-04T00: 05: 50 PID [500] Информация Отправка ответа: 403,80 Запретный

Там, кажется, нет никаких токенов обновления в лексемы магазине, но почему? Я уже установил настройки магазина токенов на портале.

ответ

0

Если Google обнаружит, что он уже предоставил вашему пользователю токен обновления, он не даст дополнительных токенов обновления, если вы явно не предложите пользователю согласие. Вы можете сделать это, добавив параметр запроса строки prompt = permission в URL-адрес входа. В вашем случае, https://noteappsvr.azurewebsites.net/.auth/login/google?access_type=offline&prompt=consent

Попробуйте это и посмотрите, восстанавливает ли он токен обновления Google.

Google документации на такое поведение можно найти здесь (на вкладке HTTP/REST): https://developers.google.com/identity/protocols/OAuth2WebServer#offline

Важно: Когда приложение получает токен обновления, важно сохранить этот маркер обновления для будущее использование. Если ваше приложение потеряет токен обновления, ему необходимо будет повторно запросить пользователя для получения согласия до получения другого токена обновления.Если вам нужно повторно запросить пользователя для получения согласия, укажите параметр приглашения в запросе кода авторизации и установите для него значение.

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

+0

Благодарим за отзыв, я могу получить токен обновления, добавив параметр prompt = permission. –

+0

Благодарим за отзыв, я могу снова получить токен обновления, добавив параметр prompt = permission. Но добавление этого параметра всегда не рекомендуется? В практическом использовании сначала попросите пользователя войти в систему с диалоговым окном, затем используйте токен обновления несколько раз. Если он истекает, снова закройте диалоговое окно входа. Кажется, нет проблем добавить этот параметр в first.not? –

+0

Я предлагаю вам выполнять обычные логин и обновлять потоки, как вы были. Если обновление завершилось неудачно, и ваш код обнаружил, что токен обновления отсутствует, возможно, вы можете вызвать приглашение = согласие на воссоздание токена обновления. –

Смежные вопросы