簡體   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