jwt 鉴权

json web token是为了在⽹络应⽤环境间传递声明⽽执⾏的⼀种基于JSON的开放标准
一、输入用户名密码登录,将用户名和密码传给后端验证,验证成功后根据**生成 token(两处明文和一处密文)将token返还给前端

生成token需要用到jsonwebtoken模块,该模块不需要app.use()
引入:const jwt = require("jsonwebtoken");
生成token:jwt.sign() 有三个参数
  参数1:对象(可以进行简单的数据信息传递)
  参数2:当前的**/密码
  参数3:token的时效性
鉴权

二、前端接收到token后进行客户端存储; 获取到token后请求头部携带token,发送至服务端

储存token鉴权鉴权token分为三部分,由.区分

前两部分为明文 是base64的编码 第三部分是密文
第一部分是头部信息
 组成:typ 类型 / alg 加密方式(默认是HS256)
鉴权
第二部分paload:是字段中的内容,存放自定义信息
 组成:iss: 该JWT的签发者
    sub: 该JWT所⾯向的⽤户
    aud: 接收该JWT的⼀⽅
    exp(expires): 什么时候过期,这⾥是⼀个Unix时间戳
    iat(issued at): 在什么时候签发的
鉴权
第三部分signature 是密码
鉴权

请求头部的携带token:

xhr.setRequestHeader("Authorization","Bearer "+token)
Bearertoken进行拼接时,中间一定要加一个空格!!!!!!!!!!!!
鉴权

三、服务端验证token,如果验证通过则返还数据,如果验证不通过则返回401
验证token需要使用koa-jwt模块,该模块不需要app.use()
引入:const koajwt = require("koa-jwt")
鉴权

相关文章: