27 drf-jwt自定义用户表签发token

写一个登录接口,使用自定义的用户表,签发token

 

 

 

 views.py(参考内置的path('login/', obtain_jwt_token)中的obtain_jwt_token,)

from rest_framework_jwt.settings import api_settings
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
class LoginView(APIView):
    def post(self, request):
        response = {'code': 101, 'msg': '用户名或密码错误'}
        username = request.data.get('username')
        password = request.data.get('password')
        user = User.objects.filter(username=username, password=password).first()
        if user:
            # 登录成功,签发token,通过当前登录用户获取荷载(payload)
            payload = jwt_payload_handler(user)
            # 通过payload生成token串(三段:头,payload,签名)
            token = jwt_encode_handler(payload)

            response['code'] = 100
            response['msg'] = '登录成功'
            response['token'] = token

        return Response(response)

urls.py

path('login/', LoginView.as_view()),

 

 

 

posted @ 2022-02-08 20:05  甜甜de微笑  阅读(134)  评论(0编辑  收藏  举报