2016-11-25 2 views
4

thisガイドに従ってサーバー側のoauthをやっています。YouTubeでリフレッシュトークンを取得していません

私は正常に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

2つのこと:

  1. リフレッシュトークンを取得するには、OAuthの開始要求にクエリパラメータとしてaccess_type=offlineを渡す必要があります。これにより、初めてoauthを実行するときに、アカウントのリフレッシュトークンが取得されるようになります。
  2. 同じアカウントに対してoauthを繰り返し実行する際にリフレッシュトークンを取得するには、クエリのパラメータとしてprompt=consentをoauth開始要求に渡す必要があります。

参考:https://developers.google.com/identity/protocols/OAuth2WebServer#offline

+1

おかげアビシェーク!私はaccess_typeをオフラインで渡していましたが、プロンプト同意を有効にしていませんでした。これで、リフレッシュトークンが返されます。 – jremi

関連する問題