【问题标题】:Auth from different prefix interfering each other来自不同前缀的身份验证相互干扰
【发布时间】:2018-04-02 02:36:06
【问题描述】:

我有两个前缀,我在每个前缀的AppController 中单独设置AuthComponent,每个前缀的Auth logic 完全不同

每个前缀都有一个特定的AppController,每个前缀extends的所有controllers都有它们所属前缀的特定AppController

问题出在这里......当我登录前缀 A 时,会覆盖前缀 Auth session dataB 所以,如果我注销前缀 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


【解决方案1】:

如前所述,这两个登录的信息将存储在会话的同一区域中,因此其中一个将覆盖另一个。您可以将存储配置为使用不同的密钥:

'storage' => ['className' => 'Session', 'key' => 'Auth.Dashboard']

'storage' => ['className' => 'Session', 'key' => 'Auth.Admin']

详情请见https://book.cakephp.org/3.0/en/controllers/components/authentication.html#configuration-options

【讨论】:

  • 完美答案先生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
  • 2016-08-13
  • 1970-01-01
相关资源
最近更新 更多