Django Rest FrameWork中的AuthToken:non_field_errors

时间:2018-01-10 12:42:15

标签: python django django-rest-framework auth-token

我试图在DRF(Django版本1.10)中集成基于令牌的身份验证,但是当我按照文档中提到的那样使用> dput(input) structure(list(CT1 = structure(1:3, .Label = c("chr1:200-400", "chr1:800-970", "chr2:300-700"), class = "factor"), CT2 = structure(1:3, .Label = c("chr1:250-450", "chr2:200-500", "chr2:600-1000"), class = "factor"), CT3 = structure(1:3, .Label = c("chr1:400-800", "chr1:700-870", "chr2:700-1400"), class = "factor")), .Names = c("CT1", "CT2", "CT3"), class = "data.frame", row.names = c(NA, -3L)) > dput(output) structure(list(CT1 = c(1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L), CT2 = c(1L, 0L, 1L, 1L, 1L, 1L, 0L, 1L, 1L), CT3 = c(0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L)), .Names = c("CT1", "CT2", "CT3"), class = "data.frame", row.names = c("chr1:200-400", "chr1:800-970", "chr2:300-700", "chr1:250-450", "chr2:200-500", "chr2:600-1000", "chr1:400-800", "chr1:700-870", "chr2:700-1400" )) 命中api-token-auth时,需要将令牌返回给我但是我是得到

{"username":"test","password":"123456789"}

我在已安装的应用中使用了{ "non_field_errors": [ "Unable to log in with provided credentials." ] } ,一旦用户注册,就会生成令牌并保存在rest_framework.authtoken表中。

同样在我的urls.py根目录中我使用

authtoken_token

任何帮助将不胜感激。还附上代码

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

2 个答案:

答案 0 :(得分:0)

您可能没有哈希密码并保存原样。在您看来,您应该保存这样的密码。

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

user.set_password将哈希密码。

答案 1 :(得分:0)

谢谢哈桑!问题得到解决。我使用了USERNAME_FIELD ='email'&在帖子数据中使用了实际的用户名。还有一件事我想弄清楚是否有人可以...我使用make_password来哈希我的密码我也可以使用user.set_password来哈希我的密码在我使用api-token-auth成功获得令牌的情况下。 DRF authtoken实际使用哪种哈希算法或库?或者我们可以使用任何可用的库来哈希Django会自动解码吗?