JWT登录鉴权

160 阅读1分钟

写在前面

JWT是一种基于JSON(JavaScript Object Notation)的轻量级认证和授权协议,它包含了一些声明(claims)和签名(signature),用于验证发送者身份和保护传输的信息。

JWT工作原理

163a569e24bffb93~tplv-t2oaga2asx-zoom-in-crop-mark_3024_0_0_0.webp

  1. 浏览器首次登录,post携带用户名和密码请求服务器
  2. 服务器将用户信息生成jwt,并返回给客户端
  3. 浏览器拿到jwt之后,可以保存到cookie或者localStoragesessionStorage
  4. 浏览器下次请求接口,将jwt放到请求头header中(默认格式Authorization: Bearer jwt
  5. 服务端检查jwt的签名信息,从jwt中获取用户信息,并执行后续操作。反之,权限校验失败

JWT组成

  • Header:定义加密方式和令牌类型
    • { "alg": "HS256", "typ": "JWT"}
  • Payload:定义需要加密的数据
    • { "sub": "1234567890", "name": "John Doe", "admin": true}
  • Signature:由前两部分加密组成,主要用来验证发生请求者身份

JWT实现

(1)后端:express-jwt、jsonwebtoken

(2)前端:axios拦截器、localstorage存储token

参考

《JSON Web Token 入门教程 - 阮一峰》

jwt.io