我正在尝试使用 django 进行自定义身份验证,我编写了一个类并用方法 authenticate 和 get_user 填充它,我还将此身份验证添加到 settings.py 文件中的 AUTHENTICATION_BACKENDS 中。
我已经调用了身份验证方法,并在我的视图中使用登录来跟进它。
一切似乎都很好,
- is_authenticated 在用户登录后返回 true,
- user.backends 设置为我的自定义后端。
- sessionid cookie 正在我的浏览器中设置
但是后续的请求中 request.user 是匿名的,无法弄清楚原因,需要您的帮助。分享下面的代码,我只是在尝试学习自定义身份验证。
视图.py
def home(request):
if not request.user.is_authenticated():
user=authenticate(username=None,passwd=None,request=request)
if not user:
return HttpResponse("Login Failed")
else:
login(request,user)
return HttpResponse("Logged in Successfully")
cusauth.py
class CustomloginBackend:
def authenticate(self,username=None,passwd=None,request=None):
return self.get_user("praveen.madhavan")
def get_user(self,username):
try:
return User.objects.get(username=username)
except Exception as e:
return False
可能是什么问题呢 ?
谢谢
普拉文