Djangoプロジェクトで、Django-rest-authを使用して認証を行っています。email with passwordユーザー名+パスワードではなく、ユーザーを認証します。
Settings.pyに次の設定がありますが、何もしませんでした。
REST_SESSION_LOGIN = True
EMAIL_BACKEND = 'Django.core.mail.backends.console.EmailBackend'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_AUTHENTICATION_METHOD = 'EMAIL'
ACCOUNT_EMAIL_VERIFICATION = 'optional'
どうすればそれを達成できますか?
次の設定が機能しました:
#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",
)
私もこのパッケージを使用していますが、この構成を呼び出すことで、次のように機能しました。
ACCOUNT_AUTHENTICATION_METHOD = 'email'
この構成に注意してください。この構成はDjango-allauth
に属しています。これを参照してください。
class AuthenticationMethod:
USERNAME = 'username'
EMAIL = 'email'
USERNAME_EMAIL = 'username_email'
上記のクラスはallauth
にある設定なので、「EMAIL」は小文字で記述します。
お役に立てば幸いです