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



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

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

有没有有效的方法可以为一种类型的用户创建身份验证后端?

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

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

这样,Django 将首先尝试使用电子邮件身份验证,如果失败,将尝试远程应用程序身份验证。

您可以在此处阅读有关自定义身份验证后端的信息

希望对您有所帮助!

如果要为某些用户禁用密码身份验证,可以使用set_unusable_password 。从文档中:

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

如果针对现有外部源(如 LDAP 目录)对应用程序进行身份验证,则可能需要此项。

相关内容

  • 没有找到相关文章

最新更新