我有cakephp应用程序,该应用程序有两个单独的登录名,一个用于管理员,一个用于员工。我正在使用会话存储登录详细信息。但是当我从管理员注销时,它会自动从员工注销,反之亦然。我可以为此使用两个不同的会话吗?
我没有使用基于角色的登录名。相反,我正在使用插件进行管理 管理员应用控制器
$this->loadComponent('Auth', [
'loginAction' => ['controller' => 'Users', 'action' => 'login'],
'logoutRedirect' => [
'controller' => 'Users',
'action' => 'login',
],
'authenticate' => [
'Form' => [
'userModel' => 'Users',
'fields' => ['username' => 'username', 'password' => 'password']
]
],
'authError' => 'Enter Credentials',
'storage' => 'Session',
'unauthorizedRedirect' => false
]
);
Employee App控制器
$this->loadComponent('Auth', [
'loginAction' => [
'controller' => 'Employees',
'action' => 'loginemp'
],
'logoutRedirect' => [
'controller' => 'Employees',
'action' => 'loginemp',
],
'authError' => 'Enter Credentials',
'authenticate' => [
'Form' => [
'userModel' => 'Employees',
'fields' => ['username' => 'username', 'password' => 'password']
]
],
'storage' => 'Session',
'unauthorizedRedirect' => false
]);
答案 0 :(得分:0)
更改
'storage' => 'Session'
至
'storage' => [ // Add this array
'className' => 'Session',
'key' => 'Auth.Admin',
],
在管理面板中的Auth cofiguration。
例如假设在管理面板下的Auth配置:
$this->loadComponent('Auth', [
'loginAction' => ['controller' => 'Users', 'action' => 'login'],
'logoutRedirect' => [
'controller' => 'Users',
'action' => 'login',
],
'authenticate' => [
'Form' => [
'userModel' => 'Users',
'fields' => ['username' => 'username', 'password' => 'password']
]
],
'authError' => 'Enter Credentials',
'storage' => [ // Change this
'className' => 'Session',
'key' => 'Auth.Admin',
],
'unauthorizedRedirect' => false
]
);