#coding=utf-8 from rest_framework.serializers import ValidationError from rest_framework_jwt.views import ObtainJSONWebToken,VerifyJSONWebToken,RefreshJSONWebToken from utils import response_error, response_ok from apps.account.serializers import JWTSerializer class LoginView(ObtainJSONWebToken): serializer_class = JWTSerializer def post(self, request, *args, **kwargs): try: ser = self.serializer_class(data=request.data) ser.request = request if ser.is_valid(raise_exception=True): return response_ok(ser.validated_data) except ValidationError as e: return response_error(e.detail['error'][0]) class RefreshTokenView(RefreshJSONWebToken): def post(self, request, *args, **kwargs): try: ser = self.serializer_class(data=request.data) if ser.is_valid(raise_exception=True): return response_ok({'token': ser.validated_data['token']}) except ValidationError as e: return response_error(u'登录状态失效,请重新登录')