2017-10-11 80 views
1

一個認證後端在我的Django應用程序,我需要多類型的Django用戶:
1.這是由電子郵件識別和密碼驗證一個典型的管理員用戶
2.它連接到遠程應用程序django並使用預共享密鑰和令牌進行身份驗證。此類用戶不需要電子郵件Django的:每個用戶模型

每種類型的用戶都有不同的關聯屬性。我知道我可以在Django中擴展用戶模型。 我已經創建了電子郵件身份驗證後端。但是,這適用於所有帳戶,包括遠程應用程序。

是否有任何有效的方法來創建一個用戶類型的auth後端?

回答

0

您可以創建遠程應用程序的自定義認證後端,並顯示在您的設置是這樣的:

AUTHENTICATION_BACKENDS = (
    'path.to.email.authentication', 
    'path.to.remote.app.authentication', 
) 

這樣,Django會首先嚐試使用電子郵件身份驗證,如果失敗,將會嘗試遠程應用驗證。

你可以閱讀有關自定義認證後端here

希望它能幫助!

0

如果您想禁用某些用戶的密碼驗證,您可以使用set_unusable_password。從文檔:

將用戶標記爲沒有設置密碼。這與爲密碼輸入空白字符串不同。該用戶的check_password()將永遠不會返回True。不保存用戶對象。

如果您的應用程序針對現有外部源(例如LDAP目錄)進行身份驗證,則可能需要此操作。