Skip to main content
 首页 » 编程设计

python之Django Rest FrameWork 中的 AuthToken : non_field_errors

2025年01月19日26luoye11

我正在尝试在 DRF(Django 版本 1.10)中集成基于 token 的身份验证,但是当我使用 {"username":"test","password":"123456789"} 如文档中所述,需要将 token 返回给我,但我正在获取

{ 
    "non_field_errors": [ 
        "Unable to log in with provided credentials." 
    ] 
} 

我在我安装的应用程序中使用了 rest_framework.authtoken,一旦用户注册并保存在 authtoken_token 表中,就会生成 token 。

同样在我使用的 root 的 urls.py 中

urlpatterns += [ 
    url(r'^api-token-auth/', authviews.obtain_auth_token), 
] 

如有任何帮助,我们将不胜感激。附上代码

urls.py 
 
urlpatterns += [ 
    url(r'^api-token-auth/', authviews.obtain_auth_token), 
] 
 
settings.py 
INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'rest_framework', 
    'rest_framework.authtoken', 
    'users' 
] 
 
users/urls.py 
 
 
from rest_framework.routers import DefaultRouter 
from . import views as user_views 
from django.conf.urls import url ,include 
 
 
router = DefaultRouter() 
router.register(r'user', user_views.UserViewSet,base_name="user") 
urlpatterns = router.urls

请您参考如下方法:

您可能没有散列密码并按原样保存。在您看来,您应该这样保存密码。

user = User.objects.create(usename='test', first_name='first_name', email='test@abc.com') 
user.set_password('password') 
user.save() 

user.set_password 将散列密码。