我正在尝试进行自定义身份验证,在该身份验证中,我仅使用不带密码的电子邮件地址登录。我通过互联网搜索,但找不到很好的答案。我是Django的新手,也许这就是为什么我找不到解决方案的原因。谁能帮我解决这个问题?谢谢
答案 0 :(得分:1)
Django django.contrib.auth
具有authenticate
,login
方法。如果您只想仅使用email
登录用户,则使用电子邮件获取User
对象并调用login
方法
示例
from django.contrib.auth import authenticate, login as auth_login
if request.method == 'POST':
form = SomeLoginForm(request.POST or None)
if form.is_valid():
username = User.objects.get(email=form.cleaned_data['email'])
if user:
auth_login(request, user)
但我不建议这样做。您应该使用authenticate
方法所在的密码或OTP之类的机制来验证用户