Django-仅通过电子邮件进行身份验证

时间:2019-08-13 15:53:36

标签: django django-authentication

我正在尝试进行自定义身份验证,在该身份验证中,我仅使用不带密码的电子邮件地址登录。我通过互联网搜索,但找不到很好的答案。我是Django的新手,也许这就是为什么我找不到解决方案的原因。谁能帮我解决这个问题?谢谢

1 个答案:

答案 0 :(得分:1)

Django django.contrib.auth具有authenticatelogin方法。如果您只想仅使用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之类的机制来验证用户