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)
相关推荐
彭于晏Yan20 小时前
Springboot实现连接多个ElasticSearch数据库
数据库·spring boot·elasticsearch
龙腾AI白云20 小时前
数据可视化实战:用AI工具制作专业数据分析图表
深度学习·数据分析·django
qq_3806513320 小时前
xu#True
python
DeepModel20 小时前
【概率分布】均匀分布的原理、推导与Python实现
python·算法·概率论
light blue bird20 小时前
MES/ERP大数据报表条件索引查询组件
数据库·.net·winform·t-sql·大数据报表
wmfglpz8820 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
m0_5981772320 小时前
MYSQL order by , group by练习
数据库·mysql
zzb158020 小时前
Agent学习-Reflection框架
java·人工智能·python·学习·ai
2301_7644413320 小时前
使用python实现脉冲神经网络,用于分类任务
python·神经网络·分类
TDengine (老段)20 小时前
TDengine IDMP 组态面板 —— 总体介绍
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据