FuelPHP・ユーザー管理2:認証システムの組み込み

2014/07/27

認証システムを設定する

『SimpleAuth』というAuth(認証システム)がFuelPHPに同梱されているので利用する。

configファイルの修正

fulel/app/config/config.phpの修正。「packages」に「auth」を追加

// ‘packages’ => array(
//   //’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`)
)

※phpMyadminがあればソコからやる。テーブルを生成するデータベースやテーブル名は状況に応じて変更。

一応、テーブルが生成されたか確認しておく。

注意

もし、テーブル名を「users」と異なる名称にしたときは「fuel/app/config/simpleauth.php」を修正。
「’table_name’ => ‘users’,」という箇所。

テーブル名を「test_users」としたら「’table_name’ => ‘test_users’,」とする。

「FuelPHPでユーザー管理」の一覧

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい