Ming Soon
Ming Soon

Reputation: 1018

django-rest-auth: how to get user info after successful authentication?

The django-rest-auth returns a token after successful authentication using rest_auth.serializers.TokenSerializer. How can I override this serializer or add my own so that I can get the user info like username, instead of token key after successful authentication?

Upvotes: 1

Views: 1137

Answers (1)

Ming Soon
Ming Soon

Reputation: 1018

I solved the problem by defining a custom serializer.

from django.contrib.auth.models import User
from rest_framework import serializers
from rest_auth.models import TokenModel

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('username', 'email')

class TokenSerializer(serializers.ModelSerializer):
    user = UserSerializer()
    class Meta:
        model = TokenModel
        fields = ('key', 'user')

You can also use the depth option to easily generate nested representations, but in that case, you will receive the password field as well, which is not expected and intended.

Upvotes: 2

Related Questions