django使用用戶名或手機號碼登錄


django有自己的認證系統,會自動根據用戶名和密碼進行驗證。如果需要使用用戶名或手機登錄的話,需要重寫django的認證后台,並且設置到配置文件中。

  • 重寫django的認證后台

class UsernameMobileAuthBackend(ModelBackend):
    """用戶名或手機登錄"""

    def authenticate(self, request, username=None, password=None, **kwargs):
        """判斷用戶名(手機號碼)和密碼是否正確"""
        query_set = User.objects.filter( Q(username=username) | Q(mobile=username))
        try:
            if query_set.exists():
                user = query_set.get()
                if user.check_password(password):
                    return user
        except:
            return None
        return None

 

  • 設置到django配置文件

# 自定義,可以手機號碼或用戶名登錄
AUTHENTICATION_BACKENDS = ['user.utils.UsernameMobileAuthBackend']

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM