【问题标题】:How do I have users per domain name in Django?如何在 Django 中为每个域名设置用户?
【发布时间】:2019-03-22 06:32:22
【问题描述】:

我正在使用 Django 构建一个应用程序,其中每个客户都有自己的域名(我们域中的子域,例如 customer.example.com 或他们自己的域,例如 customer.com)。在 Django 中忽略 Web 服务器配置、SSL(那会很有趣,感谢上帝让我们加密)等问题,我如何才能在每个域中拥有用户?

客户将是一种类型的用户,而客户的用户将是另一种类型。相同的用户名应该可以在每个服务域中使用。有什么可以提供帮助的预建项目吗?如果没有,我如何修改 Django 中的身份验证方式以将其限制为当前域。

我的问题不是如何为每个域/子域提供服务,而是如何进行身份验证(注册、密码重置等),这意味着这不是 Using subdomains in django 的重复

我已经研究了 https://github.com/tomturner/django-tenantshttps://github.com/bernardopires/django-tenant-schemas,对于我的用例,使用 PostgreSQL 模式来分离数据是不合适的。

【问题讨论】:

  • @HåkenLid:处理如何在子域中服务,这里没有提到任何身份验证。
  • @VaibhavVishal:我的问题,这个问题,是关于对每个域进行身份验证,这不是 django-subdomains 解决的。
  • 我明白了。我对如何解决这个问题没有任何建议,但我正在撤回重复的建议。
  • 你想要的是一个多租户应用程序,这不是微不足道的。但是有一些关于 SO 的包和其他问题可以为您提供大致的方向。搜索“多租户 django”

标签: django


【解决方案1】:

我会在自定义上下文处理器中使用“Host”标头来了解哪个是活动用户域,以及自定义登录处理程序(非常简单,只需使用 auth.authenticate(**kwargs)auth.login(request, user))。

但祝你好运,听起来是个有趣的问题。

编辑:不是check_password,而是auth.authenticate(**kwargs)auth.login(request, user)

【讨论】:

    猜你喜欢
    • 2020-04-18
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多