2017-02-24 11 views
2

私はOpenIddictを使ってトークンの承認(アクセスとリフレッシュトークン)を行い、全体的にはうまくいっています。問題は、私のユースケースに、同じ認証サーバーを使用する複数のアプリケーションタイプ(Webおよびモバイル)があることです。私はさまざまなタイプ(おそらく異なるトークンエンドポイントを使用)の異なる有効期限を持つが、私はSetAccessTokenLifetimeとSetRefreshTokenLifetimeで設定された値をオーバーライドする方法を見つけることができませんしたいと思います。これを行う方法はありますか?OpenIddictのチケット有効期限の長さを変える方法はありますか?

目標は、Webアプリケーションのアクセストークンの長さを長くし、ユーザーが有効期限が切れたときにログインにリダイレクトさせることです(合理的には有効期限が切れます、例:時間)。モバイル側では、ユーザーをログイン状態に保つために更新トークンを使用したいと考えています。ベストプラクティスは、モバイルでは、リフレッシュトークンの有効期限が長い、非常に短いトークンの有効期限(たとえば分)を持つ必要があることを示しているようです。

おかげで、 ジェイソン

答えて

3
私は(おそらく異なるトークンエンドポイントを使用して)種類ごとに異なる有効期限の時間を持っているしたいのですが、私はSetAccessTokenLifetimeで設定した値をオーバーライドする方法を把握することはできません

およびSetRefreshTokenLifetimeです。これを行う方法はありますか?

あなたは、専用のAuthenticationTicketの拡張機能を使用して、認可エンドポイントのアクションから直接グローバルトークンの有効期限値を上書きすることができます。

// Create a new authentication ticket holding the user identity. 
var ticket = new AuthenticationTicket(principal, properties, 
    OpenIdConnectServerDefaults.AuthenticationScheme); 

ticket.SetAccessTokenLifetime(TimeSpan.FromMinutes(30)); 
ticket.SetAuthorizationCodeLifetime(TimeSpan.FromMinutes(1)); 
ticket.SetIdentityTokenLifetime(TimeSpan.FromMinutes(30)); 
ticket.SetRefreshTokenLifetime(TimeSpan.FromDays(2)); 
+0

パーフェクト、感謝をピンポイント! – Jason

+0

ありがとう@Pinpoint – damir

関連する問題