ASP.NET Web API身份验证令牌过期?

7

我是一个使用基于令牌的身份验证的ASP.NET Web API应用程序的客户端。令牌结构如下:

{
    access_token: "…",
    token_type: "bearer",
    expires_in: 3599
}

显然,它被设置为过期,并且我目前正在每个请求中请求一个新令牌,我认为这不是一个好的实践,因为每个API请求实际上是2个,一个用于身份验证,另一个用于实际请求。因此,我正在尝试实现一些令牌缓存,但我不知道expires_in字段到底是什么意思,是秒还是毫秒?

2个回答

5

查看oAuth2协议规范

expires_in 建议使用。访问令牌的生命周期,以为单位。例如,值“3600”表示访问令牌将在生成响应时的一小时后过期。如果省略,则授权服务器应通过其他方式提供到期时间或记录默认值。


1
expires_in字段描述了访问令牌的过期时间,以秒为单位。在您的情况下,它将在3599秒后过期,相当于59分钟59秒。
与其为每个请求生成一个新的令牌,不如在客户端应用程序中对令牌进行缓存。在此之前,您需要通过比较当前时间和过期时间来检查是否存在有效的令牌。如果没有有效的令牌,则可以生成一个新的令牌并将其与过期时间一起存储在客户端应用程序中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接