Ion Authが正しくインストールされ、サーバーで動作しています。同じCIインストールで動作するデフォルトのCodeIgniter2「ニュース」チュートリアルもあります。私はただ遊んでいて、認証システムを使用してアプリケーション全体を「囲む」または保護する適切な方法について興味があります。
この質問では、CIに付属の「ニュース」チュートリアルを使用してみましょう。
index()
コントローラの関数内にnews.php
、ユーザーがログインしているかどうかを確認する条件コードを追加しました。ログインしていない場合、ユーザーはログイン画面に移動します。
public function index() {
$data['news'] = $this->news_model->get_news();
$data['title'] = 'News archive';
if ($this->ion_auth->logged_in()) {
$this->load->view('templates/header', $data);
$this->load->view('news/index', $data);
$this->load->view('templates/footer');
} else {
redirect('auth/login', 'refresh');
}
}
これは機能することがわかりますが、当面の欠点は、他のすべてのページビューを保護するために、コントローラー内のすべての関数も同様の条件付きロジックで変更する必要があることです。例-ログインを確認し、ページを表示します。そうでない場合は、ログインページに移動します...何度も繰り返します。
これは、それが行われることになっている方法ですか?
アプリケーションがすでに構築されて機能していて、単にすべてを保護したい場合はどうなりますか?コントローラ内のすべての単一ページビューでログインステータスをチェックするための条件付きロジックを追加することは、不必要に冗長に思えます。
コードの変更を最小限に抑えるために、アプリケーション全体(すべてのビュー)を1か所で保護できますか?もしそうなら、どのように?