如何使用 Django 为三个站点的网络创建单个登录和配置文件?
我有一个由三个站点组成的网络,而不是让用户在三个站点中的每个站点都创建一个配置文件,我希望用户只需要注册一次,然后就可以使用所有三个站点。
这个问题有优雅的解决方案吗?
让站点共享数据库。因此他们将有一个共同的用户表。
看看 django 站点框架:http ://docs.djangoproject.com/en/dev/ref/contrib/sites/
取决于您的服务器。
所有站点都可以访问同一个数据库吗?然后使用 dcrodjer 的答案。
如果没有,您可以实现 OAuth 样式的单点登录服务,其他站点对其进行身份验证。
例如:site1.example.com site2.example.com site3.example.com siteN.example.com
会针对 oauth.example.com 进行身份验证
如果您可以将这三个站点放入单个域的子域中,那么我几乎可以肯定您可以坚持使用 Django 提供的内容。我写的是这样的:
site1.mydomain.com site2.mydomain.com site3.mydomain.com
-- 在 mydomain.com 实现登录。
基本上,mydomain.com 应该提供一个小的 Django 页面,该页面仅实现登录表单并维护“.mydomain.com”域的会话(注意前导点 - 会话传播到 site1..3 子域需要它)。因此,如果您登录 mydomain.com,您就有效地登录了所有三个子站点。
共享服务器端身份验证和会话数据的最简单方法是让 ubsites 1、2、3 使用两个数据库,一个与 mydomain.com 共享的小型数据库用于身份验证和会话数据,另一个特定于给定站点。