JWT原理与Token
- JWT:JSON Web Token,开放标准,安全传输JSON 身份信息
特点:自包含、跨域支持、标准化 - JWT 结构:Header Payload Signature
- Header: 签名算法+Token 类型 {‘alg’:‘HSA56’,‘type’:‘jwt’}
- Payload: 用户信息+元数据(无敏感信息)
- Signature: 防篡改,密钥加密验证
- 注意:Payload 仅base64 编码,不能存敏感信息。
- Token 生成:三步完成
- 构建payload(最小化原则)
- 设置选项(过期时间、签发者)
- 调用jwt.sign() 生成Token(密钥核心)
- Token 验证:认证中间件逻辑
- 从Authorization 头取Token
- 调用jwt.verify()验证签名/有效性
- 用户信息放到请求对象req
- 调用next()放行请求
- 错误处理:令牌无效/过期-> 401
- JWT 安全使用
- 密钥管理:安全存储
- Token 存储:有限httpOnly cookie
- 传输:强制https,防止中间人攻击
