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)
相关推荐
MediaTea3 小时前
Python:生成器表达式详解
开发语言·python
-To be number.wan4 小时前
Python数据分析:SciPy科学计算
python·学习·数据分析
Dxy12393102164 小时前
DataFrame数据修改:从基础操作到高效实践的完整指南
python·dataframe
·云扬·5 小时前
MySQL 主从复制实战:Xtrabackup 高效部署方案
数据库·mysql
overmind5 小时前
oeasy Python 115 列表弹栈用pop删除指定索引
开发语言·python
Ama_tor6 小时前
从零开始MySQL|F盘安装,配置,简单应用以及基础语句
数据库·mysql
hnxaoli6 小时前
win10程序(十六)通达信参数清洗器
开发语言·python·小程序·股票·炒股
电饭叔6 小时前
文本为 “ok”、前景色为白色、背景色为红色,且点击后触发 processOK 回调函数的 tkinter 按钮
开发语言·python
雷电法拉珑7 小时前
财务数据批量采集
linux·前端·python
亓才孓7 小时前
【MyBatis Exception】Public Key Retrieval is not allowed
java·数据库·spring boot·mybatis