CakePHPを使い始めていて、認証コンポーネントの設定に問題があります。 ユーザーがログアウトするたびに、ケーキはそれらをログインにリダイレクトします。 ログアウト中に一部のCookieを削除/設定しようとしています。これは、Wordpressサイトでシングルサインオンを設定しているためです。そのため、ユーザーは両方のサイトからログアウトする必要があります。ログアウト後にCakePHP認証コンポーネントがログインにリダイレクトされる
私の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');
}
}
がUserController:
class UsersController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('add', 'logout', 'login');
}
...
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());
}
ログアウト時に別のページにリダイレクトしたいですか? – summea
理想的にはログアウト後にリダイレクトしますが、気にしません。今は、私のログイン操作を引き起こし、その結果、ユーザーはリダイレクト後もログインしたままになります。ログインアクションがログアウトプロセス(example.com/users/logout/)に関与する必要がある理由を私に完全に混乱させます – emersonthis
'logout()'関数で次の行を使ってみましたか?前回私がテストプロジェクトに取り組んでいた時、私はこの行だけを使っていました: '$ this-> redirect($ this-> Auth-> logout());'特に上記のクッキー関連の行が必要な場合を除きます。 – summea