gpt4 book ai didi

php - 无法设置 cakephp AuthComponent sessionKey

转载 作者:搜寻专家 更新时间:2023-10-31 21:09:27 26 4
gpt4 key购买 nike

我正在使用 cakephp 2.4.7 进行开发,其中我使用 auth 组件进行多次登录(用户和公司登录)。

我的目标是在 beforeFilter 中设置正确的 sessionKey(Auth.User 或 Auth.Company)。 Auth.User 是 cakephp 中的默认值。

应用程序 Controller :

public $helpers = array('Cache','Html','Session','Form');

public $components = array(
'Security',
'Cookie',
'RequestHandler',
'DebugKit.Toolbar',
'Session',
'Auth' => array(
'loginRedirect' => array(
'controller' => 'users',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'users',
'action' => 'login'
),
'authError' => 'You must be loggedin to view this page.',
'loginError' => 'Invalid user credentials.',
'authorize' => array('Controller')
)
);

public function beforeFilter() {

$this->Auth->deny('*');
}

公司 Controller :

public function beforeFilter() {
parent::beforeFilter();
AuthComponent::$sessionKey = 'Company';
//$this->Auth->sessionKey = 'Auth.Company';
$this->Auth->authenticate = array(
'Form' => array(
'userModel' => 'Company', // set the new userModel
'fields' => array('username' => 'email')
)
);
$this->Auth->allow('register', 'login', 'logout');
}

登录工作正常,但身份验证 session 仍然是 Auth.User。 (使用 debug($this->Auth->User()); 测试)

我做错了什么?如何正确设置 AuthComponent::$sessionKey

最佳答案

我今天遇到了同样的问题,我跳进了代码(here)检查为什么它对我不起作用。

看来还得这样设置

public function beforeFilter()
{

AuthComponent::$sessionKey = 'Auth.Company'; // static property so we have to
// access in static way so you want get strict errors
...
}

然后注销并再次登录用户。在您的操作中,只需 var_dump()pr() $this->Session->read('Auth')

顺便说一句,$this->Auth->user() 将始终返回您在 [$sessionKey] 的 Auth 中的数组,对于 AuthComponent::user() 静态调用也是如此。

关于php - 无法设置 cakephp AuthComponent sessionKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24163701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com