2017-07-14 3 views
1

認証にシステムブラウザを使用しています。 IDプロバイダ - グーグルOpen IDがネイティブアプリケーションに接続していますが、最初の承認後にユーザーに確認せずに有効なIDトークンを取得する必要がありますか?

ステップ

1 - ユーザーはユーザー名とパスワードを入力することによって認証されます。私はこの時点でauthentication_codeを取得します。

2 - トークンエンドポイントを呼び出し、アクセストークン、IDトークン、リフレッシュトークンを取得します。

IDトークンが期限切れになると、新しい有効なIDトークンを取得する必要があります。私は彼の資格情報を入力するようにユーザーに促さずにこれを行う必要があります。

質問 - ユーザーにプロンプ​​トを表示せずに新しいIDトークンを取得することはできますか?リフレッシュトークンは、常に「プロンプト=なし、login_hint =ユーザ名」と、認可エンドポイントを呼び出す

ソリューションしようとしたオープンID指定

に従ってトークンIDとそのないことが保証振る舞いを返しません。これはまだブラウザにリダイレクトされ、アプリに戻ります。 { "タイプ":1、 "コード" 1008 "エラー": "interaction_required"}エラー

はAuthorizationExceptionと

応答

+0

ユーザーの身元がわかっているのに新しいIDトークンが必要なのはなぜですか? –

+1

IDトークンを使用して、システムAPI呼び出しのためにユーザーを認証することを計画しています。したがって、私たちが失効したIDトークンは、新しいトークンを必要とします。 – theNoob

+0

クライアントクレデンシャルの認可(https://tools.ietf.org/html/rfc6749#section-4.4)も参照できます。 –

答えて

1

prompt=noneが移動するための方法です。 interaction_requiredを受け取ると、プロバイダのセッションが切れて、ユーザーが再度ログインする必要があることを意味します。不正行為を防ぐためにユーザーを再度認証する必要があるため、回避策はありません。 SSOセッションがまだ有効だった場合(短い期間でなければならない)、新しいid_tokenを受け取っていたはずです。

関連する問題