django使用用戶名或手機號碼登錄
阿新 • • 發佈:2018-11-16
password 號碼 exc username 手機號 lte obi then elb
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‘]
django使用用戶名或手機號碼登錄