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()),