Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该在Django的数据库中保存用户后端吗?_Python_Django_Django Authentication - Fatal编程技术网

Python 我应该在Django的数据库中保存用户后端吗?

Python 我应该在Django的数据库中保存用户后端吗?,python,django,django-authentication,Python,Django,Django Authentication,我正在创建一个Django网站,它支持本地登录后端和LDAP登录(通过Django auth LDAP),将来可能还会支持更多 我正在进入Django登录和后端SUTF,我有几个问题-主要是Django有没有理由不在数据库中保留用户创建后端?出于安全/合理的原因,用户A是否应该与后端django.contrib.auth.backends.modelbend链接(我所说的链接是指usermodel上的字段) 我正在着手创建一个自定义用户模型,并考虑添加这样的字段。对我来说,能够毫不含糊地知道使用

我正在创建一个Django网站,它支持本地登录后端和LDAP登录(通过
Django auth LDAP
),将来可能还会支持更多

我正在进入Django登录和后端SUTF,我有几个问题-主要是Django有没有理由不在数据库中保留用户创建后端?出于安全/合理的原因,用户
A
是否应该与后端
django.contrib.auth.backends.modelbend
链接(我所说的链接是指
user
model上的字段)

我正在着手创建一个自定义用户模型,并考虑添加这样的字段。对我来说,能够毫不含糊地知道使用哪个后端创建/登录用户听起来是合乎逻辑的,但Django在默认情况下没有这样的功能,而且我在互联网上找不到任何类似的功能,这让我担心我没有找到一个真正好的理由来解释为什么它会这样做

提前感谢,

Paweł

Django不需要这些信息。一旦用户通过了身份验证,django拥有了一个用户模型,它就不在乎是哪个后端对其进行了身份验证。用户模型数据存储在一个源中。用户模型(无论是默认的还是自定义的)是一致的,在整个django项目和模式中具有相同的属性、功能和行为。开箱即用的django无法处理不同的用户模型

您可以使用AbstractBaseUser扩展此功能,但是在同一个项目中管理真正不同的用户,特别是使用核心django模块,是一项艰巨的任务

Django大量使用用户模型,您必须手动定位它所使用的每个位置,并为正确的后端提供您自己的路由器。这方面没有API(比如说db路由器),这将是一个混乱的黑客程序,每次升级可能会更混乱

除了自定义用户模型之外,Django还支持“身份验证后端”。您正在寻找的一些功能是可用的,并通过此选项在正式API中公开。所以你可能想坚持下去。
请参阅:

谢谢您的回答,但我认为您不理解我的问题-我试图将其编辑得更清楚。我想我理解了。阅读django文档,但总结一下,一旦用户通过身份验证,django获得了用户模型,它就不在乎从何处进行身份验证。您正在寻找某种与django体系结构非常不同的东西。当然,您可以将所有内容修补到任何内容,但您不再处于框架思维方式中。