JWT认证

欢乐豆123 / 2024-10-05 / 原文

JWT认证

 JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用环境中安全地传输信息。以下是 JWT 的主要特点和功能:

JWT认证流程:
JWT不是一个具体的技术实现,而更像是一种标准。JWT规定了数据传输的结构,一串完整的JWT由三段落组成,每个段落用英文句号连接(.)连接,他们分别是:Header、Payload、Signature,所以,常规的JWT内容格式是这样的:Header.Payload.Signature。并且这一串内容会进行加密;解码就可以看到实际传输的内容。


   一、JWT组成

  JWT 通常由三部分组成,使用点(.)分隔。

  1.  Header

  头部(Header):通常包含令牌的类型(JWT)和所使用的签名算法(如 HMAC SHA256 或 RSA)。

  2. Payload

  载荷(Payload):包含要传输的声明(claims),如用户信息、权限、有效期等。声明可以是预定义的(如 iss、exp、sub 等)或自定义的。

  3. Signature

  签名(Signature):通过将编码后的头部、载荷和一个密钥使用指定的算法进行签名,确保数据的完整性和来源的真实性。
 

   二. 安全性

JWT 通过签名机制确保数据的完整性和真实性。虽然 JWT 可以被解码,但只有持有签名密钥的方才能验证其真实性。

3. 无状态性
JWT 是自包含的,即所有必要的信息都在令牌中,不需要存储会话状态在服务器上。这使得 JWT 特别适合于分布式系统和微服务架构。

4. 使用场景
认证:JWT 常用于用户身份验证。用户登录后,服务器生成 JWT,返回给客户端,客户端在后续请求中携带 JWT 进行身份验证。
信息交换:JWT 也可以用于安全地传递信息,确保信息在传输过程中未被篡改。

 

登录认证流程

用户登录,输入账号密码
服务端接受登录请求,常规校验(验证码),根据用户信息生成token,返还客户端
客户端收到登录返还信息,将得到的token保存下来,通常保存在localStorage里面
再次发起请求授权资源,请求头中携带token信息
服务端接受请求,拦截器中校验token信息,校验通过放行,校验不通过作相应异常提示


5. 优势
灵活性:JWT 可以在不同的环境和语言中使用。
减少服务器负担:无状态性降低了服务器对会话的依赖。
跨域支持:JWT 可以轻松用于跨域请求。
6. 注意事项
JWT 的有效期应合理设置,以防止被盗用。
需要使用 HTTPS 传输 JWT,以防止被窃取。
总的来说,JWT 是一种高效、灵活且安全的令牌机制,广泛应用于现代 Web 和移动应用程序的身份验证和信息传输。

 


参考链接:https://juejin.cn/post/7180507955551764537