蛋糕PHP x项目ACL实施后重定向到错误的URL(Cake php 2.x project red

2019-10-21 19:38发布

我的蛋糕PHP项目被重定向到错误的URL,我做了全面实施ACL的按照本教程后- > http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-controlled-应用/简单-ACL-受控application.html 。

问题 -

正确重定向 - >本地主机/应用程序的名字/

重定向我实现ACL后 - >本地主机/应用程序的名字/ APPNAME /

这是登录后发生的重定向。 公共页面(登录)做工精细。

下面是AppController的代码 -

public $components = array( 'Acl',
'Auth' => array(
    'authorize' => array(
        'Actions' => array('actionPath' => 'controllers')
    )
),
'Session'
);
public $helpers = array('Html', 'Form', 'Session');
// only allow the login controllers only
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('login');
}

ACOS表截图 阿罗斯表截图 Aros_Acos表截图
组表

routes.php文件

Router::connect('/dashboard', array('controller' => 'dashboards', 'action' => 'index'));
Router::connect('/login', array('controller' => 'users', 'action' => 'login'));
Router::connect('/logout', array('controller' => 'users', 'action' => 'logout'));
Router::connect('/', array('controller' => 'dashboards', 'action' => 'index'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
CakePlugin::routes();
require CAKE . 'Config' . DS . 'routes.php';

正确的网址是开放的时候我只用“验证”,而不是下面。

'Auth' => array(
'authorize' => array(
'Actions' => array('actionPath' => 'controllers')
)
),

不过,届时将ACL无法正常工作。

Answer 1:

从你的代码粘贴好,你似乎没有已经配置了登录重定向。 我希望你beforeFilter在您的应用程序控制器看起来更像是这样的:

public function beforeFilter() {
    //Configure AuthComponent
    $this->Auth->loginAction = array(
      'controller' => 'users',
      'action' => 'login'
    );
    $this->Auth->logoutRedirect = array(
      'controller' => 'foo',
      'action' => 'bar'
    );
    $this->Auth->loginRedirect = array(
      'controller' => 'foo',
      'action' => 'bar'
    );
}

你的情况,你似乎要登录的用户在这个例子中你的主页将在app /配置/ routes.php文件被定义为foo的控制器的动作栏返回到主页等等。

在您定义的登录操作(通常是用户控制器),你还可以添加重定向的控制器,是这样的:

public function login() {
    if ($this->request->is('post')) {
        if ($this->Auth->login()) {
            // Redirect the user to home
            return $this->redirect($this->Auth->redirect(array('controller'=>'foo', 'action'=>'bar')));
        }
    }
}

你似乎缺少ACL组件在你的AppController组件阵列。 试试看更新到:

public $components = array(
    'Acl',
    'Auth' => array(
        'authorize' => array(
            'Actions' => array('actionPath' => 'controllers')
        )
    ),
    'Session'
);


文章来源: Cake php 2.x project redirecting to wrong url after ACL implementation