在我的Django应用程序中,我需要多种类型的Django用户:1.典型的管理员用户,通过电子邮件识别并通过密码验证2.一个远程应用程序,它连接到django并使用预共享密钥和令牌进行身份验证 . 此类用户不需要该电子邮件
每种类型的用户都有不同的关联属性 . 我知道我可以在Django中扩展User模型 . 我已经创建了电子邮件身份验证后端 . 但这适用于所有帐户,包括远程应用程序 .
有没有有效的方法为某类用户创建auth后端?
您可以为远程应用程序创建自定义身份验证后端,并在您的设置中显示如下:
AUTHENTICATION_BACKENDS = ( 'path.to.email.authentication', 'path.to.remote.app.authentication', )
这样,Django将首先尝试使用电子邮件身份验证,如果失败将尝试远程应用程序身份验证 .
您可以阅读有关自定义身份验证后端here
希望能帮助到你!
如果要禁用某些用户密码身份验证,可以使用set_unusable_password . 来自文档:
将用户标记为未设置密码 . 这与密码的空字符串不同 . 此用户的check_password()永远不会返回True . 不保存User对象 . 如果应用程序的身份验证是针对现有外部源(如LDAP目录)进行的,则可能需要此选项 .
2 回答
您可以为远程应用程序创建自定义身份验证后端,并在您的设置中显示如下:
这样,Django将首先尝试使用电子邮件身份验证,如果失败将尝试远程应用程序身份验证 .
您可以阅读有关自定义身份验证后端here
希望能帮助到你!
如果要禁用某些用户密码身份验证,可以使用set_unusable_password . 来自文档: