FuelPHP・ユーザー管理2:認証システムの組み込み
2014/07/27
認証システムを設定する
『SimpleAuth』というAuth(認証システム)がFuelPHPに同梱されているので利用する。
configファイルの修正
fulel/app/config/config.phpの修正。「packages」に「auth」を追加
// ‘packages’ => array(
// //’orm’,
// ),
↓↓↓
‘packages’ => array(
‘auth’,
),
// //’orm’,
// ),
↓↓↓
‘packages’ => array(
‘auth’,
),
※私の場合はコメントにされていたので、コメント解除して「auth」に変更
「’packages’ => array(」は単体じゃないので注意。
実際は「’always_load’ => array(‘packages’ => array(○○○));」的な感じだったりする。
つまり「’always_load’ => array(」のトコがコメントされていたらコメント解除してあげる。もちろん対応する閉じ括弧もチェック・対応する。
authファイルの複製
「fuel/packages/auth/config」の中にある「auth.php」と「simpleauth.php」に2ファイルを
「fuel/app/config/」に複製する
複製したauthファイルの修正
「fuel/app/config/auth.php」の「salt」の修正
‘salt’ => ‘S9egsrGUosabfWPL’,
※文字は何でも良いらしい。
「fuel/app/config/simpleauth.php」の「login_hash_salt」の修正
‘login_hash_salt’ => ‘qTmtoZbCGqnjhUF7’,
※文字は何でも良いらしい。
ユーザー管理用のテーブルを作成
DBにテーブル作成。作成するテーブルのクエリが下記。
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`password` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`group` INT NOT NULL DEFAULT 1 ,
`email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`last_login` VARCHAR( 25 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`login_hash` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`profile_fields` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`created_at` INT( 11 ) UNSIGNED NOT NULL , UNIQUE ( `username` , `email`)
)
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`password` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`group` INT NOT NULL DEFAULT 1 ,
`email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`last_login` VARCHAR( 25 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`login_hash` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`profile_fields` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`created_at` INT( 11 ) UNSIGNED NOT NULL , UNIQUE ( `username` , `email`)
)
※phpMyadminがあればソコからやる。テーブルを生成するデータベースやテーブル名は状況に応じて変更。
一応、テーブルが生成されたか確認しておく。
注意
もし、テーブル名を「users」と異なる名称にしたときは「fuel/app/config/simpleauth.php」を修正。
「’table_name’ => ‘users’,」という箇所。
テーブル名を「test_users」としたら「’table_name’ => ‘test_users’,」とする。