【发布时间】:2009-08-21 10:07:34
【问题描述】:
我有主站点 example.com,用户可以在其中注册和登录,或者只使用 openid 登录。 登录用户可以使用 mysite.example.com 等子域创建自己的站点。 每个用户都可以拥有多个站点。 每个站点都是 cakephp 应用程序。 每个蛋糕应用都有自己的 ACL。
如何部署授权,以便登录到主站点的用户也登录到他们自己的站点。
【问题讨论】:
我有主站点 example.com,用户可以在其中注册和登录,或者只使用 openid 登录。 登录用户可以使用 mysite.example.com 等子域创建自己的站点。 每个用户都可以拥有多个站点。 每个站点都是 cakephp 应用程序。 每个蛋糕应用都有自己的 ACL。
如何部署授权,以便登录到主站点的用户也登录到他们自己的站点。
【问题讨论】:
这里有两个主要要求:
客户端 cookie 需要对所有应用程序都有效
在客户端检查 CakePHP 设置的 cookie(FireCookie 对此很有用)。 cookie 的domain 部分需要读取.example.com(不是www.example.com)才能应用于子域。这可能适用于bootstrap.php:
ini_set('session.cookie_domain', '.example.com');
服务器端会话存储需要可供所有应用程序访问
在core.php 中为每个应用程序设置一个公共会话存储。选项是:
php:这将使用 PHP 定义的会话存储目录,所有应用程序都应该相同。database:如果所有应用程序都使用同一个数据库,这可能是一种选择。cake:为此,您需要为每个应用程序定义一个通用的/tmp 目录。【讨论】:
Config/Schema/sessions.php 在两个版本中看起来都一样。