2015-01-15 39 views
3

如果我改變我的allauth驗證方法在Django的設置,我總是得到以下錯誤電子郵件:Django的allauth電子郵件登錄 - 總是錯誤

The e-mail address and/or password you specified are not correct. 

即使電子郵件相匹配的數據庫。

ACCOUNT_AUTHENTICATION_METHOD = 'email' 
ACCOUNT_EMAIL_REQUIRED = True 
ACCOUNT_EMAIL_VERIFICATION = "optional" 

我設置電子郵件驗證,可選擇以消除誤差的來源,但問題仍然不管我是否確認電子郵件:

我使用以下設置試過這種在乾淨的Django項目地址。

+0

我收到了同樣的問題。當使用用戶名登錄它的工作,但登錄使用電子郵件它顯示此錯誤。你有解決方案嗎? – Nidhi 2015-02-11 08:13:37

+0

不好意思。我無法在任何地方找到解決方案。 – matteok 2015-02-11 08:56:52

回答

0

我面臨同樣的問題。我的屁股因爲截止日期而着火,因此我想出了一條路。分享的想法。我通過使用過濾器獲取用戶實例,然後通過複製原始請求中的數據來填充POST。

self.user = User.objects.get(email=request.POST['email']) 

然後

self.request.POST = self.request.DATA.copy() 

我用REST請求對象,因此DATA。您可以使用某種方法創建另一個可變的POST對象。請注意,原始POST是不可變的,並且不能向其添加任何內容。然後終於

self.request.POST['login'] = self.user.username 

,然後調用的LoginViewform_valid。 希望這有助於。

+0

我不得不在最後切換到登錄用戶名密碼,但感謝您輸入的內容,我可能會在某個即將到來的項目中使用該密碼。 – matteok 2015-03-12 00:30:02

+0

同樣的問題。我現在只使用電子郵件登錄,突然間應用程序失敗。我通過allauth文檔添加了這個設置(僅用於電子郵件):'''ACCOUNT_AUTHENTICATION_METHOD =「email」'''一切都恢復了。 HTH! – 2016-12-13 20:45:16

10

今天有同樣的問題,我的解決方案是,我錯過了安裝allauth的步驟AUTHENTICATION_BACKENDS步驟。

確保你有你的settings.py

AUTHENTICATION_BACKENDS = (
    # Needed to login by username in Django admin, regardless of `allauth` 
    "django.contrib.auth.backends.ModelBackend", 
    # `allauth` specific authentication methods, such as login by e-mail 
    "allauth.account.auth_backends.AuthenticationBackend" 
) 

以下見http://www.sarahhagstrom.com/2013/09/the-missing-django-allauth-tutorial了有益的指導

+1

這也是我的案例的問題。謝謝! – 2016-04-03 01:24:59

+0

這應該是被接受的答案。 – Winter 2018-01-31 04:48:47

相關問題