token、jwt 和 jwt刷新token
概念涉及到身份验证和授权的机制。
-
Token概念:
- 在网络通信中,Token 是一个用于身份验证和授权的令牌。它通常是一个字符串,由服务端生成并发送给客户端,客户端在后续的请求中携带该令牌以证明自己的身份。
- Token 可以是任意形式的字符串,比如随机生成的字符串、加密后的数据、基于 JSON 的 Web Token(JWT)等。
- 使用 Token 来进行身份验证可以避免在每次请求时都需要携带用户名和密码的安全隐患,同时也提高了系统的可扩展性和灵活性。
-
Token的作用:
- Token 的主要作用是验证用户的身份信息和授权信息。
- 当用户登录成功后,服务端会生成一个 Token 并返回给客户端,客户端在后续的请求中携带该 Token,服务端通过验证 Token 的合法性来确定用户的身份和权限。
-
Token存储于Redis:
- 在实际应用中,Token 可以存储在不同的地方,比如数据库、内存、文件系统等。其中,将 Token 存储在 Redis 中的优势在于 Redis 具有高效的内存存储和快速的读写能力,可以有效地管理大量的 Token 数据。
- 存储 Token 在 Redis 中还可以结合 Redis 的过期策略来实现 Token 的自动过期和续期,从而提高系统的安全性和可维护性。
-
JWT(JSON Web Token):
- JWT 是一种开放标准(RFC 7519),定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。
- JWT 由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。它们之间使用英文句点
.
连接起来,形成一个由三段 Base64 编码的字符串。 - JWT 的优势在于它可以在服务端生成一个 Token 并发送给客户端,客户端在后续的请求中将 Token 携带在 HTTP 请求头中,服务端可以通过解析和验证 JWT 来识别用户的身份和权限。
- JWT 的另一个特点是它是无状态的,即服务端不需要保存 Token 的状态信息,因为 Token 中已经包含了所有必要的信息。
-
JWT刷新Token:
-
- 为了提高系统的安全性,通常会设置 Token 的过期时间,当 Token 过期后需要重新生成新的 Token。而 JWT 也提供了一种刷新 Token 的机制。
- 当用户的 Token 过期时,客户端可以向服务端发送一个特殊的请求(例如 Refresh Token 请求),服务端会根据用户的身份信息生成一个新的 Token 并返回给客户端。
- 刷新 Token 的过程通常需要使用到 Refresh Token,它是一种特殊的 Token,用于获取新的 Token。Refresh Token 通常具有更长的有效期,并且只能在一定条件下使用(例如 Token 过期后)。
jwt文档:https://www.cnblogs.com/warmNest-llb/p/18030484