jwt介绍

简介:

jwt的全称是json-web-token,是一种前后端登录认证的方案。区别于之前学的cookie,session。

jwt认证机制

当用户在前端登陆时,会把账号密码等信息传递到后端,后端拿到数据后会对数据库进行校验。校验成功后,签发token,传到前端js中。js拿到数据后会把数据保存到cookie中,当用户再次发送请求,前端js会从cookie中取出token,发送Ajax请求放到请求头中,进入需要登陆才能访问的接口中(请求头里面带token)。然后APIView的认证类会从请求头中取出token,验证token是否合法,如果合法,就进入视图类中。不合法就返回错误。这样做的好处就是不需要通过数据库来判断,提高了性能。

token是经典的三段式,以 . 分割,每一段都使用快base64的编码格式。

  1. 第一段:头
    • 一般放公司信息,加密方式(一般都是固定的)
  1. 第二段:荷载
    • 一般放登陆的用户信息(签发时间,过期时间,用户名等)
  1. 第三段:签名(signature)二进制数据
    • 签发阶段:通过头和荷载,用某种加密方式得到的
    • 校验阶段:拿到token,取出一二段,通过与之前同样的加密方式获得新签名,将它与旧签名对比。

base64

base64是一种编码格式(并非加密),一般用于传输图片、字符串等。也用于jwt的使用。base64的长度一定是4的倍数,如果不是用‘=’补齐。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值