Sta*_*lso 4 c# oauth-2.0 owin aspnet-contrib asp.net-core
据我所知,ASOS 支持开箱即用的刷新令牌。要获取刷新令牌,我需要向offline_access令牌请求添加范围。但是它们存储在哪里?如何更改令牌的到期日期或将其删除?如何确定为哪个用户刷新令牌创建?
但是它们存储在哪里?
默认情况下,它们不存储在任何地方:它们是自包含的。只要用于保护刷新令牌的加密密钥仍在 ASP.NET 数据保护密钥环中,它们就可以被 ASOS 解密并用于颁发新的访问令牌。
如何更改令牌的到期日期?
可以使用RefreshTokenLifetime属性从选项全局设置默认到期日期。如果您不提供自己的生命周期,它们的有效期为 14 天。
请注意,默认情况下也启用了滑动过期,这意味着您每次发出新grant_type=refresh_token请求时都会获得一个新的刷新令牌(有效期为 14 天)。您可以通过设置UseSlidingExpiration为禁用滑动过期false。
...或删除它?
由于刷新令牌是自包含的,因此您无法删除它们。您当然可以考虑通过覆盖SerializeRefreshToken和DeserializeRefreshToken事件来使用自定义令牌(例如与数据库中的条目对应的唯一字符串),但推荐的方法是在接收刷新令牌请求时将它们简单地视为无效。
为此,如果您认为 a已被撤销且不能用于发布新令牌,则可以覆盖该HandleTokenRequest事件并调用。context.Reject()refresh_token
如何确定为哪个用户刷新令牌创建?
刷新令牌包含您在创建原始身份验证票证时添加的所有声明,因此如果您添加sub与用户标识符对应的声明,您可以使用它从数据库中检索用户配置文件。
| 归档时间: |
|
| 查看次数: |
2008 次 |
| 最近记录: |