# 初步user detail api view
This commit is contained in:
parent
d6b1c4e81f
commit
09b08712b3
|
@ -1,8 +1,9 @@
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from .views import UserLoginAPIView
|
from .views import UserLoginAPIView, UserDetailAPIView
|
||||||
|
|
||||||
|
|
||||||
app_name = 'users-api'
|
app_name = 'users-api'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('login/', UserLoginAPIView.as_view(), name='login'),
|
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.contrib.auth import get_user_model
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
from rest_framework import serializers
|
||||||
from rest_framework.response import Response
|
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.views import APIView
|
||||||
from rest_framework.permissions import AllowAny
|
from rest_framework.generics import RetrieveAPIView
|
||||||
from .serializers import UserLoginSerializer
|
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
|
from django.contrib.auth.backends import ModelBackend
|
||||||
|
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
|
@ -32,3 +35,19 @@ class UserLoginAPIView(APIView):
|
||||||
return Response(login_data, HTTP_201_CREATED)
|
return Response(login_data, HTTP_201_CREATED)
|
||||||
else:
|
else:
|
||||||
return Response(serializer.errors, HTTP_400_BAD_REQUEST)
|
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 = {
|
REST_FRAMEWORK = {
|
||||||
'DEFAULT_RENDERER_CLASSES': (
|
'DEFAULT_RENDERER_CLASSES': (
|
||||||
'rest_framework.renderers.JSONRenderer',
|
'rest_framework.renderers.JSONRenderer',
|
||||||
# 'rest_framework.renderers.BrowsableAPIRenderer',
|
'rest_framework.renderers.BrowsableAPIRenderer',
|
||||||
),
|
),
|
||||||
# 'DEFAULT_PARSER_CLASSES': (
|
# 'DEFAULT_PARSER_CLASSES': (
|
||||||
# 'rest_framework.parsers.JSONParser',
|
# 'rest_framework.parsers.JSONParser',
|
||||||
|
|
Loading…
Reference in New Issue