2015/06/09FuelPHPのAuthパッケージで会員管理やログイン画面などの作成に便利な認証機能を使ってみました。今回はAuthパッケージの中でも基本的なドライバセット「Simpleauth」を利用してみます。今回の確認環境は以下の通りです。1.7※FuelPHPはDB接続設定済みとします設定ファイルなどの準備まずAuthパッケージを読み込むため「.../fuel/app/config/config.php」ファイルを開き、以下の項目に「auth」を追加します。array('auth',),),次に以下のパッケージフォルダ内のファイルを、アプリケーション設定フォルダにコピーします。.../fuel/app/config/simpleauth.phpコピーした「auth.php」をテキストエディタで開き「salt」を任意の文字列に書き換えます。'xxxxxxxxxxxxxxxxxxxx',同様に「simpleauth.php」を開き「login_hash_salt」を任意の文字列に書き換えます。'xxxxxxxxxxxxxxxxxxxx',こちらファイルで細かい設定が可能ですが、基本的に使用する分にはデフォルトでも問題ないので、ここでは詳細は割愛します。認証に必要なDBを用意する認証に必要なテーブルなどはoilコマンドで一発で用意できます。ここがFuelPHPのいいところですね。--packages=authコマンドラインより上記のコマンドを実行すると以下の6つのテーブルがDBに自動生成されますusersusers_clientsusers_providersusers_scopesusers_sessionsusers_sessionscopesさらに続けて以下のコマンドで初期ユーザやテストユーザを追加することができます。いちいち画面を作らなくてもいいなんて楽ちんですね。exit;これでDBの用意は完了です。認証機能を実装する今回は画面の構築は省き、処理に注目して解説します。コントローラ内で、以下のようにしてログイン画面などのフォームからPOSTで受けたユーザ名、パスワードでログイン処理を行います。ログイン失敗}}ログインしているかどうかのチェックは以下のようにして判定します。未認証⇒ログインが必要}ログアウト処理ですAuth::logout();いやぁものすごく簡単でシンプルですね。この部分を他のフレームワークで構築する際に、どれほど泣かされたことか。無限ループの注意SNSや管理画面など、認証状態を保持したい場合にはコントローラ内「before()」に認証チェック処理を置くと便利です。未認証の場合にはログイン画面へリダイレクトさせるべきでしょう。その時に注意するべき点は、ログイン画面のbefore内で認証チェックを働かせてしまうと、ログイン画面へのリダイレクトが繰り返され、結果として無限ループに陥ってしまうので気を付けなければいけません。!Auth::check()){Response::redirect('auth/login');}}こちらは無限ループを回避する1つの例です。当然といえば当然ですが、ログイン画面へ飛ばす条件としてログイン画面は対象にしてはいけないということですね。以上、FuelPHPでは少ないコストで認証のしくみを組込むことができます。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。inc.Profileサイト「helog」は私がWeb制作に携わるなかでの経験を中心に記しています。前にも発生したんだよなぁ。」といった無駄な時間を省くことを目的に書き始めました。「へ」の「ログ」です。個人的な技術メモのようなものですが、みなさんの何か役に立つことがあればこの上ないです。