使用“其他身份验证源”时,我可以避免创建Django auth.model.User表吗?

时间:2011-12-13 13:52:17

标签: django django-authentication

正如 Django 文档中提到的Other authentication sources,为了对其他来源进行身份验证,您必须实施自己的身份验证后端。此外,他们解释说:

  

Django管理系统与本文开头描述的Django User对象紧密耦合。目前,处理此问题的最佳方法是为后端存在的每个用户创建一个Django User对象(例如,在LDAP目录,外部SQL数据库等中)。

由于我不打算使用管理系统(我假设他们正在引用管理应用程序)我可以避免该表复制吗?

我正在考虑实现身份验证 get_user 方法as the doc says,但这意味着 User 类的实例化,所以接下来的问题是:可以在没有实际的Django用户表的情况下实例化 auth.models.User 类吗?

5 个答案:

答案 0 :(得分:1)

您应该将用户从外部身份验证映射到auth.User对象。

答案 1 :(得分:1)

django.contrib.auth设置中删除INSTALLED_APPS

答案 2 :(得分:1)

你问题的简短回答是 - 是的,它可以。只需在用户模型上将managed属性设置为False即可。

答案 3 :(得分:0)

您是否有特殊原因想要创建表格?如果您编写(或使用预先存在的)LDAP authentication backend,User对象将存储在表中,但它们不会存储任何密码信息,您可以轻松更新电子邮件地址和名称等字段在身份验证过程中,您不会在存储在LDAP中并在Django表中管理的信息之间建立断开连接(即,您可以继续从LDAP更新身份验证信息,而不必担心在Django DB中更新它。

答案 4 :(得分:0)

没有办法避免表格,仍然有任何排序身份验证。 “替代”身份验证方法仍然使用auth_user表,它们只是通过其他方式进行身份验证。