DRF之JWT

一:认证规则图

(1)Django前后端不分离

 (2)DRF分离

 二:认证规则演变图

(1)数据库session认证

 PS:

  (1)验证低效率 

  (2)当有大量的用户存储在数据库中 查表会很慢

(2)缓存认证

 PS:在缓存中有I/O操作

(3)JWT认证

 (4)缓存认证 不易并发

 (5)缓存认证 易并发

 三:JWT简介

(1)作用

  (1)服务端产生token 传输给客户端 服务端不需要保存token减小服务端压力

  (2)服务端存储的是签发和认证的两端算法 

  (3)算法完成各集群服务器同步成本低,路由项目完成集群部署(适应高并发)

(2)格式

(1)采用三段式格式 头部 + 载荷 + 签名

(2)没一部分都是一个json字典加密之后形成的字符串

(3)头部 + 载荷 实验bases64位加密算法 该算法可逆

(4)签名采用hash256 不可逆

(5)格式内容

  (1)头部:基础信息 ---> 公司名称 项目组信息等等

  (2)载荷:有用但是非隐私信息 --- > 用户公开信息 过期时间等

  (3)签名:头部 + 载荷 + 秘钥 不可逆算法

(6)签发token:

  (1)头部可逆算法加密  ---> 固定头部信息加密

  (2)载荷可逆算法加密 ---> 当前用户 过期时间加密

  (3)签名不可逆算法  ---> 头部 + 载荷 + 秘钥生成不可逆加密

(7)校验token:

  (1)头部校验可选

  (2)载荷校验用户与过期时间

  (3)签名检验 头部 + 载荷 + 秘钥检验token是否被篡改

猜你喜欢

转载自www.cnblogs.com/SR-Program/p/11722252.html