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)
相关推荐
2501_941111512 小时前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python
bitbrowser3 小时前
哪些指纹浏览器支持模拟SSL指纹
网络·python·网络协议·ssl
v***5654 小时前
PostgreSQL 中进行数据导入和导出
大数据·数据库·postgresql
limenga1024 小时前
TensorFlow Keras:快速搭建神经网络模型
人工智能·python·深度学习·神经网络·机器学习·tensorflow
心软小念5 小时前
用Python requests库玩转接口自动化测试!测试工程师的实战秘籍
java·开发语言·python
q***72566 小时前
Redis-配置文件
数据库·redis·oracle
不可描述的两脚兽6 小时前
Redis 快记
java·数据库·redis
h***34636 小时前
【MySQL】表的基本操作
数据库·mysql·oracle
sanggou6 小时前
【Python爬虫】手把手教你从零开始写爬虫,小白也能轻松学会!(附完整源码)
开发语言·爬虫·python
SelectDB6 小时前
为什么实时更新场景下 Doris 查询性能是 ClickHouse 的 34 倍
数据库