我正在尝试在 DRF(Django 版本 1.10)中集成基于 token 的身份验证,但是当我使用 {"username":"test","password":"123456789"}< 访问 api-token-auth/时
正如文档中提到的,需要向我返回 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='<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f084958384b0919293de939f9d" rel="noreferrer noopener nofollow">[email protected]</a>')
user.set_password('password')
user.save()
user.set_password
将哈希密码。
关于python - Django Rest Framework中的AuthToken : non_field_errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48187740/