views.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # coding=utf-8
  2. from rest_framework.views import APIView
  3. from rest_framework_jwt.views import VerifyJSONWebToken,RefreshJSONWebToken
  4. from rest_framework.serializers import ValidationError
  5. from util import response_error, response_ok
  6. from django.contrib.auth import get_user_model
  7. from apps.customer.serializers import WechatLoginSerializer, WechatBindSerializer
  8. User = get_user_model()
  9. class WxLoginView(APIView):
  10. serializer_class = WechatLoginSerializer
  11. def post(self, request, *args, **kwargs):
  12. ser = self.serializer_class(data=request.data)
  13. if ser.is_valid():
  14. return response_ok(ser.validated_data)
  15. else:
  16. return response_error('参数错误')
  17. class WxBindView(APIView):
  18. serializer_class = WechatBindSerializer
  19. def post(self, request, *args, **kwargs):
  20. ser = self.serializer_class(data=request.data)
  21. if ser.is_valid():
  22. return response_ok(ser.validated_data)
  23. else:
  24. return response_error('参数错误')
  25. class CustomerRefreshTokenView(RefreshJSONWebToken):
  26. def post(self, request, *args, **kwargs):
  27. try:
  28. ser = self.serializer_class(data=request.data)
  29. if ser.is_valid(raise_exception=True):
  30. return response_ok({'token': ser.validated_data['token']})
  31. except ValidationError as e:
  32. return response_error(u'登录状态失效,请重新登录[' + e.detail['error'][0] + ']')
  33. class CustomerVerifyTokenView(VerifyJSONWebToken):
  34. def post(self, request, *args, **kwargs):
  35. try:
  36. ser = self.serializer_class(data=request.data)
  37. if ser.is_valid(raise_exception=True):
  38. return response_ok({'token': ser.validated_data['token']})
  39. except ValidationError as e:
  40. return response_error(u'登录状态失效,请重新登录[' + e.detail['error'][0] + ']')