Django authenticate已经包含is_active

2020-07-14  本文已影响0人  butters001

现在的 django.contrib.auth.authenticate(username=username, password=password) 默认会对is_active 进行判断
即如果用户is_active = 0, 就算用户名,密码正确,authenticate(username=username, password=password)仍然会返回None.

user = authenticate(username=username, password=password)
if not user:
        return JsonResponse({'code': 1, 'message': '用户名或密码错误'})

if not user.is_active:
        return JsonResponse({'code': 1, 'message': '用户未激活'})  # 正常情况下 永远不会走到此行代码

解决办法:
setting.py 添加如下代码即可

AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.AllowAllUsersModelBackend']
上一篇下一篇

猜你喜欢

热点阅读