【问题标题】:2 Auth Session with CakePHP2 使用 CakePHP 的身份验证会话
【发布时间】:2014-03-30 05:20:22
【问题描述】:

我的网站中有 2 个身份验证区域。 - 域/管理员(管理区域) - domain/clients(客户区)

管理员有不同的模型,客户有不同的模型。

我正在使用 $this->Auth();我使用以下代码来识别用户是否被授权。

public function isAuthorized($user) {
    // Client ACL
    if ($this->params['controller'] == 'clients'):
        if (isset($user) && !empty($user['business_type'])) {
            return true;
        } else {
            return false;
        }
    endif;
}

这很好用。问题是,当我登录管理区域并转到客户区域 URL 时,它显示为我登录。我希望管理区域和客户区域有 2 个不同的会话。

我如何识别用户是否实际登录到管理区域或客户区域。我想开发一种机制,让管理员和客户端可以从同一个浏览器同时登录。

我也在管理区域使用admin前缀,这就是为什么管理区域的isAthorized代码存储在AppController.php中

【问题讨论】:

    标签: php cakephp authentication


    【解决方案1】:

    你必须使用 AuthComponent::$sessionKey http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#AuthComponent::$sessionKey

    由于您使用的是管理员前缀,您可以在 AppController.php 中为管理区域设置 $sessionKey。

    例子:

    AuthComponent::$sessionKey = 'Auth.Admin';
    

    在您的客户端控制器中,您可以为客户端创建另一个会话密钥。

    AuthComponent::$sessionKey = 'Auth.Client';
    

    这将解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 2011-04-16
      • 2010-12-07
      • 2017-03-15
      • 2012-09-29
      相关资源
      最近更新 更多