2与CakePHP的验证会话

我在我的网站有2个认证区域。 - 域/管理员(管理员区) - 域/客户端(客户区)

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

我正在使用$ 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区域的管理员前缀,这就是为什么管理区域的代理代码存储在AppController.php


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

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

例:

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

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

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

这将解决问题。

链接地址: http://www.djcxy.com/p/21677.html

上一篇: 2 Auth Session with CakePHP

下一篇: SPA best practices for authentication and session management