Bagaimana untuk Mengesahkan Pengguna Django dengan E-mel?

Susan Sarandon
Lepaskan: 2024-10-19 20:13:29
asal
642 orang telah melayarinya

How to Authenticate Django Users with Emails?

Django - Mengesahkan dengan E-mel

Dalam Django, amalan biasa untuk mengesahkan pengguna adalah melalui nama pengguna mereka. Walau bagaimanapun, untuk kes tertentu, mungkin lebih baik untuk mengesahkan pengguna semata-mata berdasarkan alamat e-mel mereka. Ini boleh menjadi mencabar, terutamanya apabila URL distrukturkan untuk memasukkan nama pengguna, kerana ia bercanggah dengan keunikan alamat e-mel.

Untuk menangani isu ini, bahagian belakang pengesahan tersuai boleh dilaksanakan. Pendekatan ini melibatkan penciptaan bahagian belakang yang mengendalikan proses pengesahan dan mengatasi gelagat lalai menggunakan nama pengguna untuk pengesahan.

Berikut ialah bahagian belakang pengesahan tersuai yang boleh digunakan:

<code class="python">from django.contrib.auth import get_user_model, authenticate
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 authenticate(username=user.username, password=password):
                return user
        return None</code>
Salin selepas log masuk

Bujung belakang ini menimpa kaedah pengesahan dan semakan untuk pengguna berdasarkan alamat e-mel mereka. Jika pengguna ditemui, proses pengesahan diteruskan menggunakan mekanisme pengesahan Django standard.

Untuk menggunakan hujung belakang tersuai ini, masukkannya dalam tetapan AUTHENTICATION_BACKENDS dalam fail tetapan Django anda:

<code class="python">AUTHENTICATION_BACKENDS = ['path.to.auth.module.EmailBackend']</code>
Salin selepas log masuk

Dengan melaksanakan bahagian belakang tersuai ini, Django boleh mengesahkan pengguna berdasarkan alamat e-mel mereka, membolehkan pengalaman pengesahan yang lebih fleksibel dan mesra pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Pengguna Django dengan E-mel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!