Django rest framework 我正在尝试使用djangorest框架使用jwt令牌实现身份验证,但遇到断言错误
AssertionError:“LoginView”应该包含序列化程序\u类属性,或者重写get\u serializer\u class()方法 这是代码 类登录视图(GenericAPIView):Django rest framework 我正在尝试使用djangorest框架使用jwt令牌实现身份验证,但遇到断言错误,django-rest-framework,Django Rest Framework,AssertionError:“LoginView”应该包含序列化程序\u类属性,或者重写get\u serializer\u class()方法 这是代码 类登录视图(GenericAPIView): 即使我将serializer=UserSerializer(user)data={'user':serializer.data,'token':auth\u token}更改为serializer\u class=UserSerializer(user)data={'user':serializ
即使我将serializer=UserSerializer(user)data={'user':serializer.data,'token':auth\u token}更改为serializer\u class=UserSerializer(user)data={'user':serializer\u class.data,'token':auth\u token}仍然不起作用,只是类名,在
post
中使用serializer=self.get\u serializer(data=request.data)
。实际上,序列化程序应该有用户名
和密码
。因此,您最好使用这些字段创建一个UserLoginSerializer
。
def post(self, request):
data = request.data
username = data.get('username', '')
password = data.get('password', '')
user = auth.authenticate(username=username, password=password)
if user:
auth_token = jwt.encode({'username': user.username}, settings.JWT_SECRET_KEY)
serializer = UserSerializer(user)
data = {'user': serializer.data, 'token': auth_token}
return Response(data, status=status.HTTP_200_OK)
return Response({'detail': 'Invalid credential'}, status=status.HTTP_401_UNAUTHORIZED)