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)
相关推荐
DashVector13 小时前
向量检索服务 DashVector产品计费
数据库·数据仓库·人工智能·算法·向量检索
KYGALYX14 小时前
在Linux中备份msyql数据库和表的详细操作
linux·运维·数据库
读研的武14 小时前
DashGo零基础入门 纯Python的管理系统搭建
开发语言·python
檀越剑指大厂14 小时前
金仓KReplay:定义数据库平滑迁移新标准
数据库
Andy14 小时前
Python基础语法4
开发语言·python
努力成为一个程序猿.15 小时前
【Flink】FlinkSQL-动态表和持续查询概念
大数据·数据库·flink
mm-q291522272915 小时前
Python+Requests零基础系统掌握接口自动化测试
开发语言·python
毕设十刻15 小时前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
liliangcsdn16 小时前
如何利用约束提示优化LLM在问题转sql的一致性
数据库·sql