令牌密钥名称 django-rest-auth

Token key name django-rest-auth

我在我的 Django 项目中使用 django-rest-auth==0.9.3(我正在为移动应用程序制作 REST API),我遇到了这个问题: 在 {base_url}/api/users/login/ 上使用的身份验证后,API 在 JSON 中为我提供了用户的令牌,但此令牌的键值是 'key':

{
   "key": "1eca799e88fd76bea3b33c53c33d58e4940bc7b8"
}

我希望它是 "token"。 有谁知道它的特殊属性或如何自定义我的 TokenSerializer 或任何其他解决方案?

您可以编写自定义序列化程序

class TokenSerializer(serializers.ModelSerializer):
    """
    serializer for getting the user token for authentication
    """
    token = serializers.CharField(source='key')

    class Meta:
        model = Token

使用此序列化程序return响应

正如评论中提到的 @Bear Brown,在您的代码中使用自定义序列化器 class,

from rest_auth.models import TokenModel
from rest_framework import serializers


class MyCustomTokenSerializer(serializers.ModelSerializer):
    token = serializers.CharField(source='key')

    class Meta:
        model = TokenModel
        fields = ('token',)


settings.py中添加序列化程序的路径,

REST_AUTH_SERIALIZERS = {
    'TOKEN_SERIALIZER': 'path.to.custom.MyCustomTokenSerializer',
}