1

我的团队正在开发一个 Django 项目。它将有一个管理小组来控制其下的几家公司。要将新公司添加到系统中,管理员将使用面板添加公司的域。这些域实际上将指向我们的系统。我们将通过 url 检测公司并根据该公司的域管理视图。例如:我们将展示该公司下的用户,进行该公司下的交易等等。公司的所有信息,如用户信息、公司详细信息和成员都将存储在我们项目的主数据库中。用户将使用他们的电子邮件登录。因此,我们无法使用 Django 的身份验证模型使数据库中的电子邮件字段(或用户名)唯一,因为电子邮件用户可以在不知情的情况下注册到多个不同的公司。

我们正在寻找答案的问题:

  • 为用户设置一个随机用户名,但是我们在 syncdb 之后在命令行上创建超级用户时遇到了一个问题,因为第一个参数将是使用 USERNAME_FIELD 定义的参数。如何处理这个独特的用户名字段问题?

  • 为每个公司创建不同的用户表。如果是这样,如何自动执行此操作?

4

1 回答 1

0

看起来您可能会遇到一些复杂的用户/身份管理场景。考虑使用某种单点登录。有几个 Django 友好的解决方案可以帮助您开发身份代理:

django.contrib.auth 的 OpenID 集成 https://launchpad.net/django-openid-auth

我使用支持 OpenID 的 OpenAm,这是一篇文章,其中提供了一些 使用 Django 实现单点登录 (SSO)的示例

Django 社交身份验证 https://github.com/omab/django-social-auth

或者,您可以尝试“使用电子邮件地址进行 Django 身份验证” http://www.micahcarrick.com/django-email-authentication.html

于 2013-12-17T15:50:07.337 回答