token(JWT)

发布时间 2023-07-01 14:56:11作者: wdszh

token(JWT)

  • token是服务端生成并返回给HTTP客户端的一串加密字符串,token中保存着用户信息
  • 实现会话控制,可以识别用户的身份,主要用于移动端 APP
  • token的工作流程
    1. 校验身份,校验通过后响应tokentoken一般是在响应体中返回给客户端的
    2. 后续发送请求时,需要手动将token添加在请求报文中,一般是放在请求头中
  • token的特点
    1. 服务端压力更小(数据存储在客户端)
    2. 相对更安全(数据加密、可以避免CSRF【跨站请求伪造】)
    3. 扩展性更强(服务间可以共享、增加服务节点更简单)

JWT

  • JWT(JSON Web Token)是目前最流行的跨域认证解决方案,可用于基于token的身份验证
  • JWT使token的生成与校验更规范

扩展阅读

使用jsonwebtoken包操作token示例

//导入 jsonwebtokan
const jwt = require('jsonwebtoken')

//创建 token
// jwt.sign(数据, 加密字符串--盐值, 配置对象)
let token = jwt.sign(
    {
        username: 'zhangsan'
    }, 
    'tokentest', 
    {
        expiresIn: 60 //单位是 秒
    }
)

//解析 token
// jwt.verify(token, 加密字符串--盐值, 回调函数)
jwt.verify(token, 'tokentest', (err, data) => {
    if(err){
        console.log('校验失败~~')
        return
    }

    console.log(data)
})