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)
相关推荐
Amber_379 小时前
php的数组和python的列表 -- 横向对比学习
python·学习·php
九章-9 小时前
甘肃统计投资审核系统完成国产数据库替换:从MySQL到金仓的平稳跨越
数据库·mysql·信创·国产化替换
_Jimmy_9 小时前
Mysql假如单表数据量上亿,会出现什么问题
数据库·mysql
中文Python9 小时前
小白中文Python-双色球LSTM模型出号程序
开发语言·人工智能·python·lstm·中文python·小白学python
想睡hhh9 小时前
mysql基础——视图
数据库·mysql·视图
q***58199 小时前
【HTML+CSS】使用HTML与后端技术连接数据库
css·数据库·html
superbadguy9 小时前
用curl实现Ollama API流式调用
人工智能·python
嚴 帅9 小时前
Pytnon入门学习(一)
python
小兵张健9 小时前
Java + Spring 到 Python + FastAPI (二)
java·python·spring
vvoennvv10 小时前
【Python TensorFlow】BiTCN-BiLSTM双向时间序列卷积双向长短期记忆神经网络时序预测算法(附代码)
python·rnn·tensorflow·lstm·tcn