メールアドレス経由で Django ユーザーを認証するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-19 20:08:30
オリジナル
973 人が閲覧しました

How to Authenticate Django Users via Email Addresses?

電子メールによる Django 認証

Django では、通常、認証はユーザー名を使用して実行されます。ただし、場合によっては、代わりに電子メール アドレスを使用してユーザーを認証することが望ましい場合があります。 Django は URL 構造でユーザー名を使用するため、これには課題が生じます。

カスタム認証バックエンド

この制限を克服するには、カスタム認証バックエンドを作成します。このバックエンドを使用すると、独自の認証ロジックを指定できます。

<code class="python">from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend

class EmailBackend(ModelBackend):
    def authenticate(self, request, username=None, password=None, **kwargs):
        UserModel = get_user_model()
        try:
            user = UserModel.objects.get(email=username)
        except UserModel.DoesNotExist:
            return None
        else:
            if user.check_password(password):
                return user
        return None</code>
ログイン後にコピー

このバックエンドは、電子メール アドレスとパスワードに基づいてユーザーを認証します。

認証バックエンドの構成

カスタム バックエンドを Django 設定で認証バックエンドとして設定します。

<code class="python">AUTHENTICATION_BACKENDS = ['path.to.auth.module.EmailBackend']</code>
ログイン後にコピー

メールでログイン

カスタム バックエンドを設定すると、メール アドレスを使用してユーザーを認証できます。

<code class="python">email = request.POST['email']
password = request.POST['password']
user = authenticate(request, username=email, password=password)</code>
ログイン後にコピー

以上がメールアドレス経由で Django ユーザーを認証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!