Django中应用jwt进行身份校验token

jwt 即 json web token。用于身份校验,当用户登录的时候,服务器会给用户分配一个token,服务不会保存。当用户需要访问服务器的时候,需要带着token,服务通过token来判断用户现在的状态,比如token失效不正确等。在小破站学习了一会大致了解了一点,这里记录一下。

实现方法这里不赘述。

导入包

pip install pyjwt

安装慢的话可以参考这篇博文----->传送门

配置

utils.py

自定义的工具文件,里面用于调用jwt包里面的函数来返回生成token

import jwt
import datetime
from django.conf import settings


def get_token(payload, timeout):
    salt = settings.SECRET_KEY
    headers = {
        "typ": "jwt_",
        "alg": "HS256",
    }
    payload["exp"] = datetime.datetime.utcnow() + datetime.timedelta(minutes=timeout)  # 设置到期时间
    token = jwt.encode(payload=payload, key=salt, headers=headers).decode("utf-8")
    return token

登录视图

class LoginViewSet(ModelViewSet):
    parser_classes = [MultiPartParser, JSONParser, FormParser]
    # authentication_classes = []
    """视图集"""
    queryset = models.User.objects.all()
    serializer_class = UserModelSerializer
    # 搜索
    search_fields = ('id')

    @action(methods=['post'], detail=False)
    @csrf_exempt
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值