1

私はアプリケーションサービスからGoogleの更新トークンを取得しようとしていますが、できません。 04::25 PID [500]冗長受信した要求:GET https://noteappsvr.azurewebsites.net/.auth/login/google?access_type=offline 2016-11-04T00:04:25 PID [500]冗長ダウンロードOpenIDでのコンフィギュレーションからリフレッシュトークンの要求に失敗しました。トークンストアにリフレッシュトークンが見つかりませんでした

ログは

2016-11-04T00を語りますhttps://accounts.google.com/.well-known/openid-configuration

2016-11-04T00:04:25 https://www.googleapis.com/oauth2/v3/certs

2016-11-04T00からPID [500]冗長ダウンロードOpenIDの発行者キー: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]冗長受信した要求:05:https://noteappsvr.azurewebsites.net/.auth/login/google/callback?state=nonce%3D5656e1dd...&prompt=none

2016-11-04T00 GET 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]冗長サイト 'noteappsvr.azurewebsites.net'の 'AppServiceAuthSession' Cookieを記述しています。長さ: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警告[500]警告トークンストアにリフレッシュトークンが見つからなかったため、sid:4fd4f6 ...によって発行されたリフレッシュ要求が失敗しました。

2016-11-04T00:05:応答を送信する50 PID [500]インフォメーション:

禁断の403.80があり、トークンストアにはリフレッシュトークンもないように見えるが、なぜ? ポータルのトークンストア設定が既に有効になっています。

答えて

0

Googleがユーザーに既に更新トークンを与えていることを検出した場合、明示的にユーザーに同意を求めない限り、追加の更新トークンは表示されません。これを行うには、プロンプト=同意クエリ文字列パラメータをログイン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 = consentパラメータを追加して、リフレッシュトークンを再度受け取ることができます。 –

+0

ありがとうございます。私はprompt = consentパラメータを追加して、リフレッシュトークンを再度受け取ることができます。 ただし、このパラメータを常に追加することはお勧めしません。 実際には、ダイアログでログインを促してから、リフレッシュトークンを数回使用してください。期限が切れた場合は、再度ログインダイアログを表示してください。 最初にそのパラメータを追加するのは問題ありません。 –

+0

通常のログインとリフレッシュの流れは、以前と同じように行うことをお勧めします。リフレッシュに失敗し、リフレッシュトークンがないことをコードが検出した場合、プロンプト=同意を呼び出してリフレッシュトークンを再作成することができます。 –

関連する問題