Cakephp针对不同用户的不同会话

时间:2018-08-21 07:52:44

标签: session cakephp

我有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
        ]);

1 个答案:

答案 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

                ]
            );