3

如何使用 Django 为三个站点的网络创建单个登录和配置文件?

我有一个由三个站点组成的网络,而不是让用户在三个站点中的每个站点都创建一个配置文件,我希望用户只需要注册一次,然后就可以使用所有三个站点。

这个问题有优雅的解决方案吗?

4

3 回答 3

3

让站点共享数据库。因此他们将有一个共同的用户表。

看看 django 站点框架:http ://docs.djangoproject.com/en/dev/ref/contrib/sites/

于 2011-01-05T05:41:22.170 回答
1

取决于您的服务器。

所有站点都可以访问同一个数据库吗?然后使用 dcrodjer 的答案。

如果没有,您可以实现 OAuth 样式的单点登录服务,其他站点对其进行身份验证。

例如:site1.example.com site2.example.com site3.example.com siteN.example.com

会针对 oauth.example.com 进行身份验证

于 2011-01-05T05:59:01.200 回答
0

如果您可以将这三个站点放入单个域的子域中,那么我几乎可以肯定您可以坚持使用 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 共享的小型数据库用于身份验证和会话数据,另一个特定于给定站点。

于 2011-01-05T16:17:59.293 回答