# 初步user detail api view
This commit is contained in:
parent
d6b1c4e81f
commit
09b08712b3
|
@ -1,8 +1,9 @@
|
|||
from django.urls import path
|
||||
from .views import UserLoginAPIView
|
||||
from .views import UserLoginAPIView, UserDetailAPIView
|
||||
|
||||
|
||||
app_name = 'users-api'
|
||||
urlpatterns = [
|
||||
path('login/', UserLoginAPIView.as_view(), name='login'),
|
||||
path('info/', UserDetailAPIView.as_view(), name='info'),
|
||||
]
|
|
@ -1,10 +1,13 @@
|
|||
from django.contrib.auth import get_user_model
|
||||
from django.db.models import Q
|
||||
from rest_framework import serializers
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.status import HTTP_201_CREATED, HTTP_400_BAD_REQUEST
|
||||
from rest_framework.status import HTTP_200_OK, HTTP_201_CREATED, HTTP_400_BAD_REQUEST
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.permissions import AllowAny
|
||||
from .serializers import UserLoginSerializer
|
||||
from rest_framework.generics import RetrieveAPIView
|
||||
from rest_framework.permissions import AllowAny, IsAuthenticated
|
||||
from rest_framework_jwt.serializers import VerifyJSONWebTokenSerializer
|
||||
from .serializers import UserLoginSerializer, UserDetailSerializer
|
||||
from django.contrib.auth.backends import ModelBackend
|
||||
|
||||
User = get_user_model()
|
||||
|
@ -32,3 +35,19 @@ class UserLoginAPIView(APIView):
|
|||
return Response(login_data, HTTP_201_CREATED)
|
||||
else:
|
||||
return Response(serializer.errors, HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
class UserDetailAPIView(RetrieveAPIView):
|
||||
serializer_class = UserDetailSerializer
|
||||
permission_classes = [AllowAny]
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
token = request.GET.get('token', None)
|
||||
data = {'token': token}
|
||||
try:
|
||||
valid_data = VerifyJSONWebTokenSerializer().validate(data)
|
||||
user = valid_data['user']
|
||||
serializer = self.get_serializer(user)
|
||||
return Response(serializer.data, HTTP_200_OK)
|
||||
except serializers.ValidationError as v:
|
||||
print("validation error", v)
|
||||
|
|
|
@ -140,7 +140,7 @@ STATIC_URL = '/static/'
|
|||
REST_FRAMEWORK = {
|
||||
'DEFAULT_RENDERER_CLASSES': (
|
||||
'rest_framework.renderers.JSONRenderer',
|
||||
# 'rest_framework.renderers.BrowsableAPIRenderer',
|
||||
'rest_framework.renderers.BrowsableAPIRenderer',
|
||||
),
|
||||
# 'DEFAULT_PARSER_CLASSES': (
|
||||
# 'rest_framework.parsers.JSONParser',
|
||||
|
|
Loading…
Reference in New Issue