4

Ich habe ein Django-Projekt, in dem ich Django-Rest-Auth verwende, um die Authentifizierung zu tun. Ich möchte E-Mail mit dem Passwort verwenden, um den Benutzer und nicht den Benutzernamen + Passwort zu authentifizieren.Django Rest Auth E-Mail statt Benutzername

Ich habe folgende Einstellungen in meinem settings.py aber es tut mir nichts:

REST_SESSION_LOGIN = True 
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 
ACCOUNT_EMAIL_REQUIRED = True 
ACCOUNT_AUTHENTICATION_METHOD = 'EMAIL' 
ACCOUNT_EMAIL_VERIFICATION = 'optional' 

Wie kann ich es erreichen?

+0

1. Sie Fehler bekommen Sie? 2. Haben Sie ein benutzerdefiniertes Benutzermodell? 3. Haben Sie die folgenden Einstellungen versucht? http://django-allauth.readthedocs.org/en/latest/advanced.html#custom-user-models – mariodev

Antwort

0

ich dieses Paket auch bin mit, und durch Aufruf dieser Config es für mich gearbeitet:

ACCOUNT_AUTHENTICATION_METHOD = 'email' 

Vorsicht zu dieser Konfiguration gehört diese Config django-allauth finden dies:

class AuthenticationMethod: 
    USERNAME = 'username' 
    EMAIL = 'email' 
    USERNAME_EMAIL = 'username_email' 

Oberhalb der Klasse ist eine Einstellung, die in allauth ist, so dass Sie 'EMAIL' in Kleinbuchstaben schreiben.

Ich hoffe, es

7

Nach Einstellung gearbeitet hilft:

#This is required otherwise it asks for email server 
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 
# ACCOUNT_EMAIL_REQUIRED = True 
# AUTHENTICATION_METHOD = 'EMAIL' 
# ACCOUNT_EMAIL_VERIFICATION = 'optional' 

ACCOUNT_AUTHENTICATION_METHOD = 'email' 
ACCOUNT_EMAIL_REQUIRED = True 
ACCOUNT_USERNAME_REQUIRED = False 

#Following is added to enable registration with email instead of username 
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", 
) 
Verwandte Themen