使用django的rest_framework_jwt实现权限认证

本文介绍了JWT的原理,包括其简洁、自包含的特点,以及JWT由header、payload和signature三部分组成的结构。详细讲述了在Django项目中如何配置和使用JWT进行用户验证,包括配置设置、JWT生成及验证过程。
摘要由CSDN通过智能技术生成

1、JWT简介

JWT 是一个开放标准(RFC 7519),它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法。JWT 可以使用 HMAC 算法或者是 RSA 的公钥密钥对进行签名。它具备两个特点:

简洁(Compact)

可以通过URL, POST 参数或者在 HTTP header 发送,因为数据量小,传输速度快

自包含(Self-contained)

负载中包含了所有用户所需要的信息,避免了多次查询数据库

2.JWT的组成

一个JWT由三个部分组成:header,payload,signature。

header

jwt的头部有两部分信息构成:

  1. 声明类型,这里是jwt
  2. 声明加密算法,通常直接使用HMAC SHA256

完整的头部如下:

{
    'typ':'JWT',
    'alg':'HS256'
    
}

payload

载荷就是用来存放有效信息的地方。包含三个部分:

  1. 标准中注册的声明
  2. 公共的声明
  3. 私有的声明

signature

JWT的第三部分是一个签证信息,包含三个部分:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值