【发布时间】:2018-04-02 02:36:06
【问题描述】:
我有两个前缀,我在每个前缀的AppController 中单独设置AuthComponent,每个前缀的Auth logic 完全不同。
每个前缀都有一个特定的AppController,每个前缀extends的所有controllers都有它们所属前缀的特定AppController。
问题出在这里......当我登录前缀 A 时,会覆盖前缀 Auth session data 的 B 所以,如果我注销前缀 A,我会登录前缀B 也一样,正如我所说的前缀完全不同,不应该改变覆盖当时的@987654333@。
我需要的是,当我登录其中一个前缀时,它会在不同的 namespace 或任何相互调用的位置创建会话数据。
AppController
<?php
namespace App\Controller;
use Cake\Controller\Controller;
class AppController extends Controller
{
public function initialize()
{
parent::initialize();
}
}
来自仪表板前缀的 AppController
<?php
namespace App\Controller\Dashboard;
use App\Controller\AppController as ParentAppController;
class AppController extends ParentAppController
{
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'finder' => 'authDashboard',
'userModel' => 'DashboardUsers',
]
],
'storage' => 'Session'
]);
}
}
来自管理员前缀的 AppController
<?php
namespace App\Controller\Admin;
use App\Controller\AppController as ParentAppController;
class AppController extends ParentAppController
{
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'finder' => 'authAdmin',
'userModel' => 'Users',
]
],
'storage' => 'Session'
]);
}
}
【问题讨论】:
-
你能显示每个 AppController 的 auth 配置吗?
-
刚刚用代码更新了问题
标签: php session authentication cakephp-3.0