Python Django rest框架身份验证

Python Django rest框架身份验证,python,django,python-3.x,django-rest-framework,django-rest-auth,Python,Django,Python 3.x,Django Rest Framework,Django Rest Auth,我想在Django中创建身份验证。我正努力按照你的意愿去做每件事。 不幸的是,目前我有两个问题。首先,当我尝试从rest\u framework.authtoken导入视图添加时,我与公司导入视图中的冲突。我需要从authtoken到url的视图(r'^api token auth/',视图。获取\u auth\u token)。其次,当我使用/api-token-auth/时,我的问题是我只能登录超级用户,对于数据库中的其他用户,我会得到响应-“无法使用提供的凭据登录。” 使用as删除冲突 f

我想在Django中创建身份验证。我正努力按照你的意愿去做每件事。 不幸的是,目前我有两个问题。首先,当我尝试从rest\u framework.authtoken导入视图添加
时,我与公司导入视图中的
冲突。我需要从authtoken到
url的视图(r'^api token auth/',视图。获取\u auth\u token)
。其次,当我使用
/api-token-auth/
时,我的问题是我只能登录超级用户,对于数据库中的其他用户,我会得到响应-
“无法使用提供的凭据登录。”


使用as删除冲突

from companies import views as companies_views
from rest_framework.authtoken import views as rest_auth_views
并在url
url(r'^api令牌身份验证/',rest\u auth\u视图中使用它。获取\u auth\u令牌)

提供的详细信息不足以调试导致身份验证的原因。能否提供更多关于基于令牌的身份验证的代码

更新:

与OP通信后,他使用
UserSerializer
创建了用户,并将密码保存为纯文本。身份验证不起作用

class UserSerializer(serializers.ModelSerializer): 

    class Meta: 
        model = User 

        fields = '__all__'`

    def create(self, validated_data):
        user = User.objects.create_user(**validated_data)
        return user

您需要在
settings.py
中的
DEFAULT\u AUTHENTICATION\u类中包含
TokenAuthentication

从文件来看

要使用TokenAuthentication方案,您需要将身份验证类配置为包含TokenAuthentication

所以像这样更改你的settings.py

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    )
}

我只在url中添加了
url(r'^api令牌auth/,视图。获取\u auth\u令牌)
。我认为这足够了,因为它是内置的。例如,我必须在我的视图中添加一些内容吗?@Wahtdbogh是的。你能包括关于Django restframwork的设置吗?好的。现在你的问题是什么?我看到您已经包括了基本身份验证和会话身份验证。它有效吗?我的问题是我只能登录超级用户,对于我数据库中的其他用户,我得到的响应是“无法使用提供的凭据登录”。好的,您是否尝试在settings.py文件中添加
ToekenAuthentication
类。我添加了,但仍然存在相同的问题。您如何创建用户??通过管理网站??我已经解决了我的问题。我认为问题不是数据库中的加密密码,@RajaSimon帮助我在序列化程序中更改密码。
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    )
}