首页 > 解决方案 > Django - 仅使用电子邮件进行身份验证

问题描述

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

标签: djangodjango-authentication

解决方案


Djangodjango.contrib.authauthenticate,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)

但我不推荐它。您应该使用密码或 OTP 等authenticate方法来验证用户


推荐阅读