登录后CakePHP auth组件重定向到登录

eme*_*his 5 cookies cakephp cakephp-2.0

我开始使用CakePHP,我在设置Auth组件时遇到了问题.每次用户注销时,cake都会将其重定向回登录. 您将看到我在logout()期间尝试删除/取消设置某些cookie.这是因为我正在使用Wordpress网站设置单点登录,因此我希望用户从两个站点注销.

我的AppController:

class AppController extends Controller {    

public $components = array(
    'Session',
    'Cookie',
    'Auth'      => array(
        'loginRedirect'     => array('controller' => 'questions', 'action' => 'index'), 
        'logoutRedirect'    => array('controller' => 'pages', 'action' => 'display', 'home')            
    )
);
public function beforeFilter() {
    $this->Auth->allow('index', 'view', 'login', 'logout', 'display');
}
}
Run Code Online (Sandbox Code Playgroud)

UsersController:

class UsersController extends AppController {

public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow('add', 'logout', 'login');
}
Run Code Online (Sandbox Code Playgroud)

...

public function login() {
//who cares
}

public function logout() {

    $wp_cookie = grab_wp_cookie(); //this grabs a specific cookie
    $cookie_name = (isset($wp_cookie['name'])) ? $wp_cookie['name'] : NULL;
      //NONE OF THESE WORK...
    $this->Cookie->write($cookie_name, '', false, time()-3600);
    $this->Cookie->delete($cookie_name);
    $this->Cookie->destroy();

    $this->redirect($this->Auth->logout());
}
Run Code Online (Sandbox Code Playgroud)

Alv*_*aro 1

您似乎无法在未登录的情况下访问该页面。(您可以尝试访问该 URL,而无需登录,只是为了检查它)

解决方案是在您的 PagesController 中添加此beforeFilter函数:

public function beforeFilter(){
    parent::beforeFilter();

    $this->Auth->allow();
}
Run Code Online (Sandbox Code Playgroud)