django-pyjwt创建与验证/解析

本文详细介绍了如何使用Python的jwt库来创建和验证JSON Web Tokens(JWT)。具体包括设置JWT头部、载荷中添加过期时间、使用HS256算法进行签名,以及如何在Django应用中实现这一过程。通过示例代码,展示了如何在view中调用这些函数,以创建和验证token。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import jwt
import datetime
from django.conf import settings

SALT= settings.SECRET_KEY

def create_token(payload,timeout=5):
    headers={
        'typ':'jwt',
        'alg':'HS256'
    }
    payload['exp'] = datetime.datetime.utcnow() + datetime.timedelta(minutes=timeout)
    token = jwt.encode(payload=payload, key=SALT, algorithm = 'HS256',headers=headers).decode('utf-8')
    return token

def verify_token (token):
    try:
        payload = jwt.decode(token, key=SALT, algorithms = ['HS256'])
        #decode成payload,用payload和当前时间戳重新生成一个token并返回
        return payload
        # token = create_token(payload)
        # return token
    except:
        return False

创建token
接受token 解析数据

view.py

from .token import create_token,verify_token

@api_view(['GET'])
def vinfor(request):
    token = request.META.get('HTTP_AUTHORIZATION', '')  
    print(token)
    data=verify_token(token)
    if data == False:
        return Response({'code':'202','token':'不对' })
    print(data)
    return Response({"code":'201',"token":data})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值