前言:
利用token进行用户身份验证的流程:
- 客户端使用用户名和密码请求登录
- 服务端收到请求,验证用户名和密码
- 验证成功后,服务端会签发一个token,再把这个token返回给客户端
- 客户端收到token后可以把它存储起来,比如放到cookie中
- 客户端每次向服务端请求资源时需要携带服务端签发的token,可以在cookie或者header中携带
- 服务端收到请求,然后去验证客户端请求里面带着的token,如果验证成功,就向客户端返回请求数据
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,前面配置的加密密钥)