2017-10-11 48 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目录)进行身份验证,则可能需要此操作。