首页 > 解决方案 > 如何在 Django 中拥有每个域名的用户?

问题描述

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

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

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

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

标签: django

解决方案


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

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

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


推荐阅读