Django JWT配置使用

settings.py中配置

python 复制代码
####################################JWT KEY##################################

JWT_KEY = '%*5xpP%2xL'
####################################################################

utils.py中引用

python 复制代码
import jwt
from django.conf import settings


def encode_jwt(payload):

    string = jwt.encode(payload=payload, key=settings.JWT_KEY)
    return string

def decode_jwt(jwt_string):
    try:
        payload = jwt.decode(jwt=jwt_string, key=settings.JWT_KEY, algorithms='HS256')
        return payload
    except Exception as e:
        return False

视图函数中

python 复制代码
			user_profile = UserProfile.objects.get(username=username)
            payload = {
                'id': user_profile.pk,
                'username': username
            }
            token = encode_jwt(payload)

验证时

python 复制代码
    	jwt_decode_result = decode_jwt(request.headers.get('authorization'))
        if not jwt_decode_result:
            context = {
                'code': 30007,
                'error': '获取的地址用户并非当前用户。'
            }
            return JsonResponse(context)
相关推荐
顶点多余1 分钟前
MysqL---表的内外连接 (重点)
数据库·mysql
进击的小头2 分钟前
第7篇:基于传递函数的PI控制器设计
python·算法
6+h6 分钟前
【MySQL】锁机制详解
数据库·mysql
xyyaihxl7 分钟前
mysql中主键索引和联合索引的原理解析
数据库·mysql
七夜zippoe11 分钟前
Python错误追踪终极指南:Sentry集成与深度定制实战
数据库·python·sentry·告警策略·错误追踪
lihao lihao18 分钟前
MySQl复合查询
数据库·sql·mysql
aq553560020 分钟前
MySQL-触发器(TRIGGER)
android·数据库·mysql
xcLeigh21 分钟前
从 Oracle RAC 到金仓高可用集群:平滑切换的架构对比与落地指南
数据库·oracle·架构·集群·数据清洗·kingbasees
blurblurblun30 分钟前
Redis底层专题(1)------ sds字符串
数据库·redis·缓存
深蓝轨迹34 分钟前
SQL优化及实战分享
java·数据库·sql