CakePHPでログアウト処理を呼び出したい

CakePHPでAuthコンポーネントを利用してログイン管理をしていて

退会処理を行った場合の実装で、コントローラーから

ログイン処理を呼び出したいということがあったのでメモ。

想像通り、簡単でした。

$this->Auth->logout();

を実行するだけでした。

退会しても、ユーザー情報は物理削除したくないので

usersテーブルに削除フラグを設定しておき、

「退会」のタイミングでこれを「2」に更新します。

退会用のページを作成し、退会理由を尋ねるための質問を用意します。

質問に回答してもらい、退会処理を実行します。

その退会処理の実装です。

$this->request->data['Entrepreneur']['delete_flg'] = '2';
if ($this->Entrepreneur->save($this->request->data, array('validate'=>false))) {
  $this->Auth->logout();
  return $this->redirect(array('action' => 'cancel_comp'));
} else {
  $this->Session->setFlash(__('退会処理に失敗しました。再度お試しください。'));
}

削除フラグを「2」に更新した後、ログアウト処理を実行し

退会完了画面に飛ばします。

ログアウトした状態になるので、

cancel_compはログインしていなくてもアクセスできるようにしておきます。

function beforeFilter() {
  parent::beforeFilter();
  $this->Auth->allow('cancel_comp');
}
コメント 停止中