【发布时间】:2018-05-10 13:22:37
【问题描述】:
我正在尝试了解使用 jwt 进行身份验证的工作原理,并且我有一些基本问题。
1) 用户是否在每个请求中都发送 accessToken 和 refreshToken ?
2)如果是,它如何发送refreshToken(我知道accessToken在http头中)
3) 服务器必须先验证accessToken(带签名),然后检查是否超过过期时间。这是对的吗?
【问题讨论】:
标签: jwt refresh-token
我正在尝试了解使用 jwt 进行身份验证的工作原理,并且我有一些基本问题。
1) 用户是否在每个请求中都发送 accessToken 和 refreshToken ?
2)如果是,它如何发送refreshToken(我知道accessToken在http头中)
3) 服务器必须先验证accessToken(带签名),然后检查是否超过过期时间。这是对的吗?
【问题讨论】:
标签: jwt refresh-token
据我所知,访问与刷新令牌在 JWT 中不是一个概念(但它在使用类似令牌的 OAuth 中)。相反,JWT 只是一个框架,它允许用户向权威机构出示他的凭据,但用户不可能以某种方式自行修改该令牌。
对于您问题的第二和第三部分,通常 JWT 会在标头中传递。一旦收到,拥有密钥的服务器可以解密令牌并检查该令牌的任何声明,包括到期日期。但请注意,仅检查到期日期可能不足以授予用户访问权限。例如,您可能已暂停某个用户的帐户,但他仍将持有他的 JWT。因此,要解决这个问题,除了检查 JWT 本身的声明之外,您可能还必须访问您的用户数据库。
【讨论】: