django中auth模块中的authenticate()函数问题

这个用来验证用户的模块

from django.contrib.auth import authenticate

前几天还可以用 user = authenticate(username=username, password=password)
返回一个用户,但是今天怎么试返回的都是 None

下面问题重现

clipboard.png

这里创建完用户后,数据库里已经可以查到记录的 username, password, email 了。

clipboard.png

clipboard.png

此时对创建的 user 用 check_password() 函数也是正常的

clipboard.png

然后使用 authenticate()

就会返回

clipboard.png

再试一遍,还是这样

clipboard.png

此时再对user进行check_password(),依然返回True

clipboard.png

这个问题很是困扰,请教一下大家。

阅读 4.8k
2 个回答

检查一下MIDDLEWARE_CLASSES里是否开启了django.contrib.auth.middleware.AuthenticationMiddleware

另外最好的调试方法是断点一步步看看是什么原因

新手上路,请多包涵

检查创建用户的is_active是否为1,若不为1,使用authenticate验证时密码无效

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题