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)
相关推荐
:mnong15 分钟前
Superpowers 项目设计分析
java·c语言·c++·python·c#·php·skills
a里啊里啊20 分钟前
测试开发面试题
开发语言·chrome·python·xpath
豆沙糕22 分钟前
Python异步编程从入门到实战:结合RAG流式回答全解析
开发语言·python·面试
淡定一生233337 分钟前
数据仓库建模方法
大数据·数据库·数据仓库
洛菡夕40 分钟前
MySQL故障排查与生产环境优化
数据库·mysql
gjc5921 小时前
零基础OceanBase数据库入门(3):创建租户
数据库·oceanbase
l1t1 小时前
DeepSeek总结的 PostgreSQL 19:为 UPDATE/DELETE 添加 FOR PORTION OF 子句
大数据·数据库·postgresql
RestCloud1 小时前
如何用ETL实现多租户数据库的数据隔离与整合
数据库·数据仓库·etl·etlcloud·数据同步·数据集成平台·数据库传输
悢七1 小时前
单机部署 OceanBase 集群
数据库·ffmpeg·oceanbase
gjc5921 小时前
零基础OceanBase数据库入门(4):创建MySQL模式数据库
数据库·mysql·oracle·oceanbase