【发布时间】:2017-11-25 15:13:10
【问题描述】:
据我了解,JWT 将在用户成功认证后由服务器创建。 JWT 将在 HTTP 响应中发送到客户端(用户机器)。 JWT中的exp时间会修改吗?什么时候会修改exp时间,是否有可能由于客户端和服务器之间的时区差异。
【问题讨论】:
标签: java rest jwt spring-rest json-web-token
据我了解,JWT 将在用户成功认证后由服务器创建。 JWT 将在 HTTP 响应中发送到客户端(用户机器)。 JWT中的exp时间会修改吗?什么时候会修改exp时间,是否有可能由于客户端和服务器之间的时区差异。
【问题讨论】:
标签: java rest jwt spring-rest json-web-token
JWT 中的 exp 时间戳(以及所有其他时间戳)是 Unix-Timestamp(定义为 1970-1-1 00:00 UTC 之后的秒数)(更多详细信息请参见 my answer here)。在客户端或发送到客户端时不会发生自动转换/修改。但是,您可以在客户端上解码 JWT,然后提取时间戳并将其转换为本地时间,例如,如果您想构建一种机制,在当前令牌即将到期时使用刷新令牌请求新的访问令牌。
在此过程中对 JWT 的任何修改也会使 JWT 无效,因为 JWT 是经过签名的,并且签名可以保证之后没有任何更改。
您可以访问jwt.io 来检查您的 jwt 并查看更改某些内容时会发生什么。如果您知道用于创建签名的密钥/密钥,请将其复制到表格右侧 VERIFY SIGNATURE 下的 secret 字段中,然后得到“签名已验证”。
【讨论】: