Django Rest FrameWork 中的 AuthToken:non_field_errors
AuthToken in Django Rest FrameWork: non_field_errors
我正在尝试在 DRF(Django 版本 1.10)中集成基于令牌的身份验证,但是当我使用文档中提到的 {"username":"test","password":"123456789"}
点击 api-token-auth/ 时,需要 return 我得到了令牌,但我得到了
{
"non_field_errors": [
"Unable to log in with provided credentials."
]
}
我在我安装的应用程序中使用了 rest_framework.authtoken
一旦用户注册并保存在 authtoken_token
table 中,也会生成令牌。
也在我的 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
将散列密码。
谢谢哈桑!问题已解决。我使用了 USERNAME_FIELD = 'email' 并且在 post 数据中使用了实际的用户名。还有一件事我想澄清一下是否有人可以...我使用 make_password 来散列我的密码我也可以使用 user.set_password 来散列我的密码在这两种情况下我使用 api-令牌认证。那么 DRF authtoken 实际使用哪种哈希算法或库?或者我们可以使用任何可用的库进行散列,Django 会自动对其进行解码?
我正在尝试在 DRF(Django 版本 1.10)中集成基于令牌的身份验证,但是当我使用文档中提到的 {"username":"test","password":"123456789"}
点击 api-token-auth/ 时,需要 return 我得到了令牌,但我得到了
{
"non_field_errors": [
"Unable to log in with provided credentials."
]
}
我在我安装的应用程序中使用了 rest_framework.authtoken
一旦用户注册并保存在 authtoken_token
table 中,也会生成令牌。
也在我的 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
将散列密码。
谢谢哈桑!问题已解决。我使用了 USERNAME_FIELD = 'email' 并且在 post 数据中使用了实际的用户名。还有一件事我想澄清一下是否有人可以...我使用 make_password 来散列我的密码我也可以使用 user.set_password 来散列我的密码在这两种情况下我使用 api-令牌认证。那么 DRF authtoken 实际使用哪种哈希算法或库?或者我们可以使用任何可用的库进行散列,Django 会自动对其进行解码?