Jas*_*son 2 security asp.net-identity asp.net-core openiddict
我有一个使用OpenIddict进行令牌授权(访问和刷新令牌)的应用程序,总体而言,它运行良好.问题是我的用例有多个使用相同授权服务器的应用程序类型(Web和移动).我想为不同类型(可能使用不同的令牌端点)设置不同的到期时间,但我无法找到一种方法来覆盖使用SetAccessTokenLifetime和SetRefreshTokenLifetime设置的值.有没有办法做到这一点?
目标是为Web应用程序设置更长的访问令牌长度,并让用户在到期时重定向到登录(合理的长期到期,例如小时).在移动端,我想使用刷新令牌来保持用户登录.最佳做法似乎表明,在移动设备上我应该有一个非常短的令牌到期(例如分钟),并且刷新令牌到期时间很长.
谢谢你,杰森
我想为不同类型(可能使用不同的令牌端点)设置不同的到期时间,但我无法找到一种方法来覆盖使用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));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |