PHPを使用してWebアプリケーションを作成しています。これには MVC パターンを使用したいので、CodeIgniterを使用することにしました。私のアプリケーションには、認証が必要なページとそうでないページがあります。コードの重複がないように、非常に一般的な方法でこれを設計したいと考えています。このための優れた「デザイン/クラス構造」を指摘できる人はいますか?
7 に答える
すべてのページ ビューでコード イグナイター アプリに自動ロードできるカスタム ライブラリを記述します。次の機能が必要です。
- ユーザーを認証します。ユーザーがログインしているかどうかを確認する
- ログインします。セッション変数などを設定する
- ログアウトします
次に、コントローラー クラスでコンストラクターの認証関数を呼び出し、結果に応じて通常どおり続行するか、アクセス拒否メッセージを含むログイン画面にリダイレクトします。
Code igniter wiki で「authentication」を検索すると、参考になる結果がいくつかあります: http://codeigniter.com/wiki/
「Ion Auth」は無駄がなく、適切にプログラムされており、ある程度広く使用されており、積極的に保守されています。
「一部のページ」が一部のコントローラー (ビューへのゲートウェイ) を意味する場合は、コントローラーの継承を調査することをお勧めします。デフォルトの CodeIgniter コントローラーを独自のもので拡張し、コンストラクターに認証チェックを入れます (ログイン フラグなどのセッションをチェックし、ログインしていない場合はログイン ページにリダイレクトします)。次に、認証を必要とするすべてのコントローラーは、新しい親コントローラーを拡張する必要があります。それでおしまい。
CodeIgniter フォーラムにアクセスして、コントローラーを拡張するさまざまな方法を検索してください。ここに1つhttp://codeigniter.com/forums/viewthread/89768/#452890があります
人気のあるIon Authライブラリの修正版であるflexi authを使用します。それはより高度で、すぐに使用できるすべての機能を備えています。
flexi auth は、CodeIgniter 2.0+ フレームワークで使用するための無料のオープン ソース ユーザー認証/ログイン ライブラリです。
手遅れであることはわかっていますが、他の誰かが参考になることを願っています。乾杯!