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)
相关推荐
一个有温度的技术博主11 分钟前
Redis系列三:在linux上安装Redis
linux·数据库·redis
changhong198611 分钟前
redis批量删除namespace下的数据
数据库·redis·缓存
IvorySQL14 分钟前
PostgreSQL 技术日报 (3月18日)|从 MD5 到 SCRAM:PG 的安全转变
数据库·postgresql·开源
代码派26 分钟前
MySQL 慢 SQL 排查这件事,NineData 社区 VS DBeaver/ Navicat 技术分析
数据库·sql·mysql·navicat·数据库管理工具·dbeaver·数据库对比
DeepModel27 分钟前
【概率分布】指数分布(Exponential Distribution)原理、推导与实战
python·算法·概率论
波特率1152001 小时前
miniconda入门使用
python·conda·miniconda·python环境
二闹1 小时前
别再死记硬背了!带你扒开*args和**kwargs的底裤
后端·python
白菜!!!1 小时前
SQL中IF、IFNULL、NULLIF、ISNULL函数的使用
数据库·sql·mysql
H_老邪1 小时前
redis 安装
数据库·redis·缓存
m0_743297421 小时前
Python在金融科技(FinTech)中的应用
jvm·数据库·python