我如何在 djangorest_auth 登录端点的 http 响应中使用令牌“Key”获取用户数据?

2024-03-18

我对使用 django 很陌生。我使用扩展 AbstractUser 的自定义用户模型,使用 Django Rest-Auth 开发了一个用于用户注册、登录和注销的 API。

当我使用凭据在登录 API 端点上调用 POST 时,我收到令牌作为响应,请检查下面的屏幕截图。

在登录 API 端点上发布 https://i.stack.imgur.com/tkqAe.png

我还需要登录用户数据。我怎么做!?

任何帮助都可以。 TIA。


您可以覆盖默认值TokenSerializer使用包含用户的自定义序列化器。

在文件中说 yourapp/model.py

from django.conf import settings

from rest_framework import serializers
from rest_auth.models import TokenModel
from rest_auth.utils import import_callable
from rest_auth.serializers import UserDetailsSerializer as DefaultUserDetailsSerializer

# This is to allow you to override the UserDetailsSerializer at any time.
# If you're sure you won't, you can skip this and use DefaultUserDetailsSerializer directly
rest_auth_serializers = getattr(settings, 'REST_AUTH_SERIALIZERS', {})
UserDetailsSerializer = import_callable(
    rest_auth_serializers.get('USER_DETAILS_SERIALIZER', DefaultUserDetailsSerializer)
)

class CustomTokenSerializer(serializers.ModelSerializer):
    user = UserDetailsSerializer(read_only=True)

    class Meta:
        model = TokenModel
        fields = ('key', 'user', )

并在您的应用程序设置中使用rest-auth配置来覆盖默认类

yourapp/settings.py

.
.
.
.

REST_AUTH_SERIALIZERS = {
    'TOKEN_SERIALIZER': 'yourapp.models.CustomTokenSerializer' # import path to CustomTokenSerializer defined above.
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何在 djangorest_auth 登录端点的 http 响应中使用令牌“Key”获取用户数据? 的相关文章

随机推荐