django-rest-auth:身份验证成功后如何获取用户信息?

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

django-rest-auth returns 验证成功后使用 rest_auth.serializers.TokenSerializer 的令牌。如何覆盖此序列化程序或添加我自己的序列化程序,以便在成功验证后获取用户名等用户信息,而不是令牌密钥?

我通过定义自定义序列化程序解决了这个问题。

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')

您也可以使用 depth 选项轻松生成嵌套表示,但在这种情况下,您也会收到 password 字段,这不是预期和预期的。