登录模块中的django restframework authenticate()无法正常工作

时间:2017-02-01 08:38:07

标签: python django authentication django-rest-framework

email = request.data.get('email', None)
password = request.data.get('password', None)
account = authenticate(email=email, password=password)

我正在使用authenticate()函数,但它总是返回None。 你能否提出一些修改来纠正这个功能。

2 个答案:

答案 0 :(得分:0)

默认情况下,django使用name从请求中获取/验证用户。因此,您必须在用户模型中设置gm(__dirname+'/Tiff/Recorded.tiff') .append(__dirname+'/Tiff/another.tiff').append(false);

Check the DJango docs

  

描述用户模型上用作唯一标识符的字段名称的字符串。这通常是某种用户名,但也可以是电子邮件地址或任何其他唯一标识符。该字段必须是唯一的(即,在其定义中设置unique = True),除非您使用可支持非唯一用户名的自定义身份验证后端。

此外,由于您使用的是DRF,请确保您使用的CBV不会覆盖USERNAME_FIELD = 'email'

答案 1 :(得分:0)

以下是身份验证的语法

user = authenticate(username=username, password=password)

此处用户名是用户模型的USERNAME_FIELD值。默认情况下,其值为“username”,因此authenticate方法将自动检查用户名和密码组合。要更改要通过电子邮件进行身份验证的用户,我们必须设置USERNAME_FIELD = 'email'

user = authenticate(username=email, password=password)