Codeigniter 3. Authなパッケージを使う


1. Ion Auth というのを使う。

ここを見た。
http://blog.pisyek.com/5-best-authentication-libraries-for-codeigniter/
4番目の Ion Auth

Composerでできた vendorディレクトリあたりに git clone してくる。
third_partyとかの方がいいのかな、まあいいや。

$ mkdir vendor/benedmunds
$ cd vendor/benedmunds
$ git clone [email protected]:benedmunds/CodeIgniter-Ion-Auth.git
# 例えば
/
├── .htaccess
├── application
├── composer.json
├── composer.lock
├── index.php
└── vendor
    ├── autoload.php
    ├── benedmunds
    ├── codeigniter
    ├── composer
    └── mikey179

そして、apprication/config/autoload.phpを編集する。

autoload.php
$autoload['packages'] = array('vendor/benedmunds/CodeIgniter-Ion-Auth');

READMEにもあるとおり、Codeigniter 3を使う人は、modelファイルのファイル名を、頭の文字大文字に変更する。

models/ion_auth_model.php  =>   models/Ion_auth_model.php

2. テーブルを作る

落としてきたファイルの、sql内のどれかを使えばテーブルができる。

3. サンプル

controllers内の auth.phpがサンプルなので、apprication/controllersにコピーしてくると動作が確認できる。modelファイル同様 Codeigniter 3では、ファイル名の頭を大文字にする Auth.php。

http://(my_site)/index.php/auth のようにするとログイン画面が開く。


4. Codeigniter 3.0.3

なんか動かないと思ったら、バージョンアップの影響があった。

Changed Config Library method base_url() to fallback to $$_SERVER['SERVER_ADDR'] when $config['base_url'] is empty in order to avoid Host header injections.

脆弱性があるから、手動で設定しなさいということらしい。そうしないとローカルのIPアドレスが入る。