【问题标题】:How to deploy authorization between multiple cakephp applications?如何在多个 cakephp 应用程序之间部署授权?
【发布时间】:2009-08-21 10:07:34
【问题描述】:

我有主站点 example.com,用户可以在其中注册和登录,或者只使用 openid 登录。 登录用户可以使用 mysite.example.com 等子域创建自己的站点。 每个用户都可以拥有多个站点。 每个站点都是 cakephp 应用程序。 每个蛋糕应用都有自己的 ACL。

如何部署授权,以便登录到主站点的用户也登录到他们自己的站点。

【问题讨论】:

    标签: cakephp authentication


    【解决方案1】:

    这里有两个主要要求:

    1. 客户端 cookie 需要对所有应用程序都有效

      在客户端检查 CakePHP 设置的 cookie(FireCookie 对此很有用)。 cookie 的domain 部分需要读取.example.com(不是www.example.com)才能应用于子域。这可能适用于bootstrap.php

      ini_set('session.cookie_domain', '.example.com');
      
    2. 服务器端会话存储需要可供所有应用程序访问

      core.php 中为每个应用程序设置一个公共会话存储。选项是:

      • php:这将使用 PHP 定义的会话存储目录,所有应用程序都应该相同。
      • database:如果所有应用程序都使用同一个数据库,这可能是一种选择。
      • cake:为此,您需要为每个应用程序定义一个通用的/tmp 目录。

    【讨论】:

    • 这是我的想法。 ini_set('session.cookie_domain', '.example.com') - 为此我认为您只需要 Configure::write('Security.level', 'low');。至于 2.(服务器端),为所有应用程序启用公共会话存储意味着您必须在应用程序级别控制对应用程序的访问,这可能会弄乱您的 ACL。我发现最好的方法是根据应用程序条款将会话存储在数据库中,并通过系统将其分发给属于给定用户的其他应用程序。
    • 我们可以为 1.3 和 2.x 使用公共会话吗?
    • 应该可以。Config/Schema/sessions.php 在两个版本中看起来都一样。
    • 问题是我有不同的蛋糕版本。 IE。 1.3 & 2.x
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 2021-02-01
    • 2021-03-25
    • 2019-08-18
    相关资源
    最近更新 更多