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)
相关推荐
XLYcmy2 分钟前
高级密码生成器程序详解:专门设计用于生成基于用户个人信息的密码猜测组合
开发语言·数据结构·python·网络安全·数据安全·源代码·口令安全
杨云龙UP14 分钟前
SQL Server定时自动备份配置:使用SSMS维护计划向导配置数据库每日自动备份_20260101
运维·服务器·数据库·sql·sqlserver·桌面
阿豪只会阿巴17 分钟前
【多喝热水系列】从零开始的ROS2之旅——Day4
c++·笔记·python·ros2
jjjxxxhhh12319 分钟前
【项目】-添加辐射源点的接口
数据库
2401_8414956431 分钟前
【LeetCode刷题】寻找重复数
数据结构·python·算法·leetcode·链表·数组·重复数
laplace012337 分钟前
LangChain 1.0 入门实战(Part 1)详细笔记
笔记·python·langchain·numpy·pandas
酸菜牛肉汤面39 分钟前
21、MySQL中InnoDB的行锁是怎么实现的?
数据库
only-lucky44 分钟前
Python版本OpenCV
开发语言·python·opencv
三万棵雪松1 小时前
【python-基础】
开发语言·python
先做个垃圾出来………1 小时前
2610.转换二维数组
开发语言·python