繁体   English   中英

使用电子邮件登录 Django

[英]Django login using email

我想使用用户的电子邮件登录网站。

我有:models.py

class User(models.Model):
    email = models.EmailField()
    password = models.CharField(max_length=200)
    client_id = models.IntegerField()
    role = models.CharField(max_length=200)

因此,据我所知,在迁移到 db 之后,很难创建 Customer User 模型。

我可以使用此代码登录,还是需要更改用户模型?

Ps 这不是标准登录用户的模型,我可以使用标准 auth.logout 退出吗?

网址:

url(r'^admin/', admin.site.urls),
url(r'^main/$', MainPage, name="main"),
url(r'^login/$', UserLogin, name="login"),

url(r'^$', HomeView, name="home"),
url(r'^logout/$', Logout, name="logout"),

视图.py

def UserLogin(request):
    email = request.POST.get('email',False)
    password =  request.POST.get('password',False)
    user = authenticate(email=email,password=password)
    if user is not None:
        return HttpResponseRedirect('Main.html')
    else:
       return HttpResponseRedirect('Index.html')

def Logout(request):
    auth.logout(request)
    return render_to_response('Login.html')

html代码:

 <form class="m-t" role="form" action="/login" method="post">

     <div class="form-group">
         <input type="email" class="form-control" placeholder="Username"  required="">
     </div>
     <div class="form-group">
          <input type="password" class="form-control" placeholder="Password" required="">
     </div>
     <button type="submit" class="btn btn-primary block full-width m-b">Login</button>

     <a href="password.html">
         <small>Forgot password?</small>
     </a>
     <a class="btn btn-sm btn-white btn-block" href="reg.html">Create an account</a>
 </form>

使用 url .8000/login 运行服务器后,每个 try 程序都返回 user = None,并重定向到 Index.html。

我想,我有这个错误,因为我已经登录了,但现在我不确定。 另外,当我尝试从 Main.html 页面注销时,使用 action = "/logout" 它会返回(找不到页面)。

Django 默认提供一个身份验证系统,它管理与此相关的一切,它包括一个身份验证功能来创建登录 cookie,提供散列密码等等。 我的建议是使用实际的,如果你需要修改一些东西,有很多方法可以扩展它。 我给你留下了一个完整的教程,但这是我的建议,使用电子邮件作为登录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM