Webプログラミング > PHP > CodeIgniter
Ion Auth とは? †
「Ion Auth」は、PHPフレームワーク「CodeIgniter」用のログイン認証ライブラリーです。
同じくCodeIgniter用のログイン認証ライブラリーである「Tank_Auth」は、最近更新が止まっているようなので、新しい「Ion Auth」を使ってみましょう。
参考リンク †
- ダウンロード
GitHub - CodeIgniter-Ion-Auth: Simple and Lightweight Auth System for CodeIgniter
https://github.com/benedmunds/CodeIgniter-Ion-Auth
- ドキュメント
Ben Edmunds - Ion Auth Docs
http://benedmunds.com/ion_auth/
- 解説記事
CodeIgniter 3.0で認証ライブラリIon Authを使う — A Day in Serenity (Reloaded)
http://blog.a-way-out.net/blog/2015/06/08/codeigniter-ion-auth/
インストール †
手動でインストールしてみます。
- GitHubからIon Authのファイル(ZIP圧縮形式)をダウンロードする。
- ZIPファイルを展開して、「application」の中身に相当するファイルをCodeIgniterへコピーする。
- 「config」
- 「controllers」
- 「language」→ とりあえずなら「english」と「japanese」だけでOK?
- 「libraries」
- 「models」
- 「views」
の6フォルダをコピーすればOK
- 「sql」フォルダの中にあるSQLを実行する。
- MySQLの場合は、「ion_auth.sql」をMySQLにインポートして、テーブルの作成とデータの追加を行う。
- 必要に応じて、Ion Auth用のテーブル名を編集する。
(そのままでも良ければ以下の作業は不要)- Ion Auth用のテーブルは「groups」「login_attempts」「users」「users_groups」の4つ。
- テーブル名にプレフィックス(接頭辞)「ia_」を付ける。
- application/config/ion_auth.php」で、
- $config['tables']['users'] = 'ia_users'; // ← 'users';
- $config['tables']['groups'] = 'ia_groups'; // ← 'groups';
- $config['tables']['users_groups'] = 'ia_users_groups'; // ← 'users_groups';
- $config['tables']['login_attempts'] = 'ia_login_attempts'; // ← 'login_attempts';
の4か所を変更する。
これでインストールは完了。
動作チェック †
とりあえず、Ion Authが動くかどうか、動作チェックをしてみます。
- http://(CodeIgniterを設置したドメイン)/auth にアクセスしてみる。
- ログイン前なので、ログイン認証ページにリダイレクトされる。
- http://(CodeIgniterを設置したドメイン)/auth/login にリダイレクトされなければ、インストールが間違えていないか再確認。
- ログイン認証ページに飛んだら、デフォルトの「Email」と「Password」を入力してみる。
- Email → admin@admin.com (全部小文字)
- Password → password (全部小文字)
- ログインに成功したら、トップページへリダイレクトされる。
- ログインに失敗したら、再度ログイン認証ページが表示される。
- ログアウトのページにアクセスしてみる。
- http://(CodeIgniterを設置したドメイン)/auth/logout にアクセスする。
- ログアウト処理が成功したかどうか?を確認するために、/authにアクセスしてみる。
- /auth/login へ飛ばされたら、ログアウトに成功していたことが分かる。
以上で、ログイン、ログアウトの動作チェックを行い、Ion Authが動作していることを確認します。
ページへの組み込み †
Ion AuthをCodeIgniterのページに組み込み、ログイン認証を利用してみます。
(例)「Hoge」というページにIon Authを組み込み、ログインしていないと「Hoge」ページのコンテンツにアクセスできないようにしたい。