Egg框架——缓存:jwt

112 阅读1分钟

前言:

利用token进行用户身份验证的流程:

  1. 客户端使用用户名和密码请求登录
  2. 服务端收到请求,验证用户名和密码
  3. 验证成功后,服务端会签发一个token,再把这个token返回给客户端
  4. 客户端收到token后可以把它存储起来,比如放到cookie中
  5. 客户端每次向服务端请求资源时需要携带服务端签发的token,可以在cookie或者header中携带
  6. 服务端收到请求,然后去验证客户端请求里面带着的token,如果验证成功,就向客户端返回请求数据

image.png

egg中使用jwt插件

1.全局安装jwt

npm i egg-jwt -S

2.全局引入jwt

在config.plugin.js文件里

jwt:{
  enable:true,
  package:"egg-jwt"
  }

3.全局配置jwt

在config.default.js文件里

config.jwt={
//配置加密密钥,自定义
//定义token加密条件字符串
   secret:"username"
}

4.使用jwt(一般都是在前端登录并且用户存在时,后端会生成一个token返回给前端)

let token=await this.app.jwt.sign({info:20},this.app.config.jwt.secret)
this.ctx.body={token}

5.验证token

在controller文件中,网络请求

let ziduan=this.ctx.request.query
//把发送的token解密为保存的数据
let mn=this.ctx.app.jwt.verify(ziduan.token,前面配置的加密密钥)