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']