我有一个使用OpenIDDICT用于代币授权(访问和刷新令牌)的应用程序,总体而言,它运行良好。问题是我的用例使用同一授权服务器具有多种应用类型(Web和移动)。我想为不同类型的不同类型(可能使用不同的令牌端点)有不同的到期时间,但是我无法找到一种用SetAccessTokenLiftime和SetRefreshtokenlifetime覆盖值的方法。有办法这样做吗?
目标是对Web应用程序具有更长的访问令牌长度,并在其到期时将用户重定向到登录(相当长的到期,例如小时)。在移动方面,我想使用刷新令牌来保持用户登录。最佳实践似乎表明,在移动设备上,我应该在较短的令牌到期(例如分钟),并带有长时间的刷新令牌。
。谢谢杰森
我想为不同类型的不同类型(可能使用不同的令牌端点)有不同的到期时间,但是我无法找到一种用setAccessTokenLifetime和setRefreshtokenlifetime覆盖值的方法。有办法这样做吗?
您可以使用专用ClaimsPrincipal
扩展名直接从您的授权端点操作中覆盖全局令牌到期值:
principal.SetAccessTokenLifetime(TimeSpan.FromMinutes(30));
principal.SetAuthorizationCodeLifetime(TimeSpan.FromMinutes(1));
principal.SetIdentityTokenLifetime(TimeSpan.FromMinutes(30));
principal.SetRefreshTokenLifetime(TimeSpan.FromDays(2));