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)
相关推荐
321茄子3 分钟前
MySQL 事务隔离性及锁
java·数据库·mysql
w***95494 分钟前
MySQL无法连接到本地localhost的解决办法2024.11.8
数据库·mysql·adb
Blossom.1184 分钟前
基于Mamba-2的实时销量预测系统:如何用选择性状态空间干掉Transformer的O(n²)噩梦
人工智能·python·深度学习·react.js·机器学习·设计模式·transformer
z***3355 分钟前
PON架构(全光网络)
网络·数据库·架构
Wise玩转AI7 分钟前
Day 26|智能体的“伦理与安全边界”
人工智能·python·安全·ai·chatgpt·ai智能体
n***78688 分钟前
PostgreSQL 中进行数据导入和导出
大数据·数据库·postgresql
f***S2448 分钟前
MyBatis-Plus 自定义 SQL 和复杂查询
数据库·sql·mybatis
1***Q7849 分钟前
后端在微服务中的服务路由
java·数据库·微服务
R***623112 分钟前
Spring数据库原理 之 DataSource
java·数据库·spring
梦里不知身是客1115 分钟前
帆软的图标类型介绍
python·信息可视化·数据分析