【401、什么是 Token?什么是 JWT??如何解决token方案无法主动过期的问题?】

27 阅读2分钟

Token 是一种用于在客户端和服务器之间进行身份验证的技术,通常被用于 Web 应用程序中。Token 可以被看作是一种凭证,它包含了某些用户信息和权限等数据。当用户登录成功后,服务器会生成一个 Token 并将其发送给客户端,在客户端的每次请求中都携带这个 Token,服务器会根据 Token 验证用户身份和权限。

JWT (JSON Web Token) 是一种基于 JSON 格式的 Token 标准,它包含了一些标准的声明(例如,身份信息、权限等)和自定义的声明,使用 HMAC 或者 RSA 签名算法对其进行签名,以保证其完整性和安全性。由于 JWT 使用标准的 JSON 格式,因此可以被各种编程语言轻松解析和使用。

Token 方案无法主动过期是一个常见的问题,通常可以通过以下两种方式来解决:

  1. 设置 Token 的有效期。在生成 Token 时,可以设置其有效期,当 Token 过期时,服务器将拒绝使用该 Token 进行身份验证。客户端需要定期重新获取 Token,以确保 Token 的有效性。
  2. 使用黑名单。当用户注销或者修改密码等操作时,服务器可以将相应的 Token 加入到一个黑名单中,这样该 Token 就无法再被使用进行身份验证。在客户端请求时,服务器会先检查该 Token 是否在黑名单中,如果在,则拒绝使用该 Token 进行身份验证。

需要注意的是,Token 的有效期和黑名单的维护都需要耗费服务器资源,因此需要权衡其安全性和性能的平衡。