2016-11-25 2 views
4

Я делаю серверную сторону oauth после this руководство.Не получать токен обновления в youtube OAuth

я успешно закончил OAuth, но я не получаю refresh_token в кода авторизации Exchange, для обновления и доступа лексем шаг:

Запрос:

POST /o/oauth2/token HTTP/1.1 
HOST: accounts.google.com 
content-type: application/x-www-form-urlencoded 
content-length: 260 

code=4/KEOuzih9jwfnHj7Rl1DeqHhcJF0goKPwtwR5IQ09ieg&client_id=****.apps.googleusercontent.com&client_secret=****&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2FsSignIn.html&grant_type=authorization_code 

Ответ:

{ 
    "access_token" : "****", 
    "expires_in" : 3580, 
    "token_type" : "Bearer" 
} 

Я что-то упускаю?

ответ

3

Две вещи нужно сделать:

  1. Чтобы получить токен обновления, вы должны пройти access_type=offline в качестве параметра запроса на запрос OAuth. Это позволит убедиться, что вы получаете токен обновления, когда делаете oauth в первый раз для учетной записи.
  2. Чтобы получить токен обновления при выполнении oauth снова и снова для той же учетной записи, вы должны передать prompt=consent в качестве параметра запроса на запрос запуска oauth.

Ссылка: https://developers.google.com/identity/protocols/OAuth2WebServer#offline

+1

Благодаря Абхишек! Я пропускал access_type в автономном режиме, но у меня не было разрешения на приглашение. Теперь он возвращает токен обновления. – jremi

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