認証 その2 SimpleAuthの認証画面を試す
oil g admin
コマンドを使うとスキャフォールドと認証画面を一気に生成することができます。
ここでは、認証用ユーザ管理テーブルのスキャフォールドと認証画面をまとめて作ってみます。
まず、ユーザ管理テーブルのスキャフォールドを生成します。
FuelPHP 1.5ではfuel/packages/auth/exampleにSimpleAuth用のマイグレーションファイルがありますが、ここではoil g admin
を使うことが目的なので、oilコマンドでマイグレーションを生成します。
$ oil g admin user username:varchar[50] password:varchar[255] group:int:default[1] email:varchar[255] last_login:varchar[25] login_hash:varchar[255] profile_fields:text
マイグレーションをデータベースに反映させます。
$ oil r migrate
テーブルが出来たら、ユーザーを新規追加します。
oilコマンドでテストコンソールを開き、Authパッケージのcreate_userメソッドを実行します。
$ oil c
Fuel 1.4 - PHP 5.3.10-1ubuntu3.5 (cli) (Jan 18 2013 23:39:11) [Linux]
>>> Auth::create_user('admin', 'pass', 'admin@example.com', 100)
1
>>>
create_userメソッドの引数は、ユーザ名、パスワード、メールアドレスのほか、グループIDが必須です。
ここで指定している値100は、simpleauth.phpで設定している管理者グループのIDです。
成功すると追加されたレコードのidが表示されます。成功したらCtrl+Cでコンソールを終了します。
これだけで完了です。
public/adminをブラウザで開いてみましょう。
認証画面が表示されます。
さきほど新規追加したユーザでログインします。
ダッシュボードが表示されます。
上部のリンクUserをクリックするとスキャフォールドで作成されたUsersテーブル管理画面が表示されます。
以上でSimpleAuthの認証画面を確認できました。
ただし、この例ではAuth::create_user
の処理を入れていないので、このスキャフォールドを使った新規ユーザ追加や変更はできません。
追補
いろいろやっているうちに、ログインすると310リダイレクトループエラーになるようになってしまったときは、マイグレーションをやり直すと解消します。