【问题标题】:django-rest-auth: how to get user info after successful authentication?django-rest-auth:成功认证后如何获取用户信息?
【发布时间】:2017-02-27 19:43:42
【问题描述】:

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

【问题讨论】:

    标签: django-rest-auth


    【解决方案1】:

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

    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 字段,这不是预期和预期的。

    【讨论】:

      猜你喜欢
      • 2021-09-08
      • 2016-06-10
      • 2013-08-02
      • 1970-01-01
      • 2020-10-03
      • 2012-07-18
      • 2019-05-03
      • 2015-09-20
      • 2015-11-30
      相关资源
      最近更新 更多