簡體   English   中英

django 登錄中間件未按預期工作

[英]django login middleware not working as expected

一個快速的,希望是一個簡單的。 我正在關注http://docs.djangoproject.com/en/dev/topics/auth/上的文檔,以獲得一些簡單的用戶身份驗證。 我根本沒有什么特殊要求,我只需要知道用戶是否登錄,僅此而已。 我正在使用 login_required 裝飾器,它的工作方式完全符合我的預期。 我實際上使用 'django.contrib.auth.views.login' 作為我的登錄視圖,以及它們在文檔中顯示的確切形式:

{% if form.errors %}
<p>Your username and password didn't match. Please try again.</p>
{% endif %}

<form method="post" action=".">
<table>
<tr>
    <td>{{ form.username.label_tag }}</td>
    <td>{{ form.username }}</td>
</tr>
<tr>
    <td>{{ form.password.label_tag }}</td>
    <td>{{ form.password }}</td>
</tr>
</table>

<input type="submit" value="login" />
<input type="hidden" name="next" value="{{ next }}" />
</form>

我想我不明白的是為什么我可以在用戶/密碼字段中放入我想要的任何內容,並且我從未收到無效用戶/密碼組合的錯誤。 我可以輸入不存在的用戶,使用正確密碼的正確用戶,基本上我想要的任何內容,它都會將我發送到“下一個”變量中的任何內容。 這讓我相信它實際上並沒有做任何事情。 我在登錄后檢查了我通過請求變量發送的內容,並且我始終顯示為 AnonymousUser,即使我“成功登錄”。 我在這里忽略了一些明顯的東西嗎? 好像我現在已經閱讀了關於身份驗證的頁面 6 或 7 次。

此外,如果我以具有“員工身份”的用戶身份登錄,我將顯示為已通過身份驗證,沒有任何問題。 如果用戶沒有該狀態,則它不起作用。

我相信我修復了它:

正確的:

url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'quiz/quiz_login.html'})

錯誤的:

url(r'^login$', 'django.contrib.auth.views.login', {'template_name': 'quiz/quiz_login.html'})

嗯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM