From abb0ae963eef23d848a441c565fc96e362e83fb5 Mon Sep 17 00:00:00 2001 From: Daniel Stanton Date: Wed, 25 Jan 2017 16:00:58 +0000 Subject: [PATCH] Include User Details for Knox responses Knox includes User details after successful login. This should be replicated when using knox for Login and Registration. --- rest_auth/registration/views.py | 1 + rest_auth/serializers.py | 15 ++++++++------- rest_auth/views.py | 1 + 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/rest_auth/registration/views.py b/rest_auth/registration/views.py index 783ef5c..cab45e8 100644 --- a/rest_auth/registration/views.py +++ b/rest_auth/registration/views.py @@ -52,6 +52,7 @@ class RegisterView(CreateAPIView): return JWTSerializer(data).data elif getattr(settings, 'REST_USE_KNOX', False): data = { + 'token': self.user, 'token': self.token } return KnoxTokenSerializer(data).data diff --git a/rest_auth/serializers.py b/rest_auth/serializers.py index 28d4bc1..bf5cf01 100644 --- a/rest_auth/serializers.py +++ b/rest_auth/serializers.py @@ -119,13 +119,6 @@ class TokenSerializer(serializers.ModelSerializer): fields = ('key',) -class KnoxTokenSerializer(serializers.Serializer): - """ - Serializer for Knox AuthToken model. - """ - token = serializers.CharField() - - class UserDetailsSerializer(serializers.ModelSerializer): """ User model w/o password @@ -152,6 +145,14 @@ class JWTSerializer(serializers.Serializer): user = JWTUserDetailsSerializer() +class KnoxTokenSerializer(serializers.Serializer): + """ + Serializer for Knox AuthToken model. + """ + token = serializers.CharField() + user = JWTUserDetailsSerializer() + + class PasswordResetSerializer(serializers.Serializer): """ Serializer for requesting a password reset e-mail. diff --git a/rest_auth/views.py b/rest_auth/views.py index 84b2609..3ec81de 100644 --- a/rest_auth/views.py +++ b/rest_auth/views.py @@ -91,6 +91,7 @@ class LoginView(GenericAPIView): context={'request': self.request}) elif getattr(settings, 'REST_USE_KNOX', False): data = { + 'user': self.user, 'token': self.token } serializer = serializer_class(instance=data,