Django:每个用户模型一个身份验证后端

在我的Django应用程序中,我需要多种类型的Django用户:
1.通过电子邮件识别并通过密码验证的典型管理员用户
2.一个远程应用程序,它连接到django并使用预共享密钥和令牌进行身份验证。 这种类型的用户不需要电子邮件

每种类型的用户都有不同的关联属性。 我知道我可以在Django中扩展用户模型。 我已经创建了电子邮件身份验证后端。 但是,这适用于所有帐户,包括远程应用程序。

是否有任何有效的方法来为一类用户创建一个auth后端?


您可以为远程应用程序创建自定义身份验证后端,并将其显示在您的设置中,如下所示:

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

这样,Django会首先尝试使用电子邮件认证,如果失败则尝试远程应用认证。

你可以在这里阅读关于定制认证后端的信息

希望能帮助到你!


如果你想禁用你的一些用户密码认证,你可以使用set_unusable_password 。 从文档:

标记用户没有设置密码。 这与为密码输入空白字符串不同。 该用户的check_password()将永远不会返回True。 不保存用户对象。

如果您的应用程序的身份验证是针对现有的外部源(例如LDAP目录)进行的,您可能需要使用此功能。

链接地址: http://www.djcxy.com/p/5781.html

上一篇: Django: one authentication backend per user model

下一篇: Django REST API: How to authenticate against user AND account(subdomain)