鉴权

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")
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值