views.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # coding=utf-8
  2. from django.contrib.auth import get_user_model
  3. from rest_framework_jwt.views import ObtainJSONWebToken, VerifyJSONWebToken, RefreshJSONWebToken
  4. from rest_framework.serializers import ValidationError
  5. from utils import response_error, response_ok
  6. from utils.empower import checkLicence
  7. from apps.staff.serializers import AdminUserJWTSerializer
  8. from utils.exceptions import CustomError
  9. User = get_user_model()
  10. class AdminUserLoginView(ObtainJSONWebToken):
  11. serializer_class = AdminUserJWTSerializer
  12. def post(self, request, *args, **kwargs):
  13. if not checkLicence():
  14. raise CustomError(u'授权失败!')
  15. try:
  16. ser = self.serializer_class(data=request.data)
  17. ser.request = request
  18. if ser.is_valid(raise_exception=True):
  19. return response_ok(ser.validated_data)
  20. except ValidationError as e:
  21. return response_error(e.detail['error'][0])
  22. class AdminUserVerifyTokenView(VerifyJSONWebToken):
  23. def post(self, request, *args, **kwargs):
  24. try:
  25. ser = self.serializer_class(data=request.data)
  26. if ser.is_valid(raise_exception=True):
  27. return response_ok({'token': ser.validated_data['token']})
  28. except ValidationError as e:
  29. return response_error(u'登录状态失效,请重新登录[' + e.detail['error'][0] + ']')
  30. class AdminUserRefreshTokenView(RefreshJSONWebToken):
  31. def post(self, request, *args, **kwargs):
  32. try:
  33. ser = self.serializer_class(data=request.data)
  34. if ser.is_valid(raise_exception=True):
  35. return response_ok({'token': ser.validated_data['token']})
  36. except ValidationError as e:
  37. return response_error(u'登录状态失效,请重新登录[' + e.detail['error'][0] + ']')