それで、私はこれにしばらく取り組んでいて、さまざまな質問をたくさんしましたが、まだ解決策はありません.
定期的にログインすると、すべて問題なく、期待どおりにログアウトできます。しかし、Facebook でログインする (アプリを承認する) 場合、ブラウザのメニューから手動で Cookie を削除しない限り、ログアウトする方法はありません。
そのロジックに従って、このコードを使用してログアウト アクションで Cookie を破棄したいと考えました (特定のケースでは、サブドメイン間で動作するようにセッション設定を変更した後)。
function logout() {
if ($this->Cookie->read('Auth.User')) {
$this->Cookie->delete('Auth.User');
}
$this->Auth->logout();
unset($_SESSION['fb_MYAPP_ID_user_id']);
unset($_COOKIE['fbm_MYAPP_ID']);
unset($_COOKIE['fbsr_MYAPP_ID']);
unset($_COOKIE['CAKEPHP']);
//pr($_SESSION);pr($_COOKIE);exit(); //here I see that the cookies are in fact deleted
$this->redirect($this->Auth->logout());
$this->redirect('/login');
}
ただし、ログアウトリダイレクトのたびに、ユーザーが元に戻り、ログインし、セッション/Cookieが再作成されます。
私は多くのSOの質問と回答を経験しましたが、どれもうまくいきませんでした。何か案は?