読者です 読者をやめる 読者になる 読者になる

きまブログ

5/31 はてなダイアリーから移行しました。


ユーザー認証 Authを学ぶ - Ormauth編

FuelPHP

前回の
ユーザー認証 Authを学ぶ - Simpleauth編 - きまブログ
に続き、Ormauth編です。


今回は、Simpleauthのサンプルを変更して、
Ormauthのサンプルを実施した手順です。

設定 - Ormauth編

順番として、以下の感じで実行していきます。


1. Simpleauthで反映したマイグレーションを、元に戻す。
2. ドライバーをSimpleauth → Ormauth へ変更する。
3. 再度、authパッケージのマイグレーションを実施する。

1. Simpleauthで反映したマイグレーションを、元に戻す。

まず、試しに、ドライバーを Ormauth へ変更してから、マイグレーションを実行しようとすると、

$ oil refine migrate --packages=auth
Already on the latest migration for package:auth.

といって、怒られる。

ここで、currentを付けても、

$ oil refine migrate:current --packages=auth
Already on the current migration for package:auth.

といって、怒られるので、ドライバーはSimpleauthのまま、
まず、Simpleauthで実施したマイグレーションを落としました。


地道にひとつずつw
やりすぎても、失敗するだけなので大丈夫w

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 010_auth_fix_jointables

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 009_auth_create_oauth2tables

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 008_auth_create_providers

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 007_auth_add_permissionsfilter

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 006_auth_add_authactions

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 005_auth_create_authdefaults

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 004_auth_create_permissiontables

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 003_auth_create_roletables

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 002_auth_create_grouptables

$ oil refine migrate:down --packages=auth
Reverted migrations for package:auth:
- 001_auth_create_usertables

$ oil refine migrate:down --packages=auth
There are no migrations installed to revert for package:auth.
2. ドライバーをSimpleauth → Ormauth へ変更する。

/fuel/app/config/auth.phpの、
’driver’=>’Simpleauth'

’driver’=>’Ormauth’
へ変更します。

3. 再度、authパッケージのマイグレーションを実施します。
$ oil refine migrate --packages=auth
Performed migrations for package:auth:
001_auth_create_usertables
002_auth_create_grouptables
003_auth_create_roletables
004_auth_create_permissiontables
005_auth_create_authdefaults
006_auth_add_authactions
007_auth_add_permissionsfilter
008_auth_create_providers
009_auth_create_oauth2tables
010_auth_fix_jointables

マイグレーションが実行されました。


なんで、こんなことしなきゃならないかというと、
authパッケージのマイグレーションには、
ドライバーに応じて、条件分岐するトコロがあるので、
「たぶん、元に戻さないと、うまくいかないだろうなぁ。。」と思い、
まず、 migrate:down で元に戻してから、
改めて、Ormauth で、migrateしなおしました。


すると、コードは何も修正しなくても、動きましたw
(ユーザー登録、未登録ユーザーのログイン失敗、登録ユーザーのログイン成功。まで。)


はじめに - OrmAuth - Auth パッケージ - FuelPHP ドキュメント
のサンプルコードもSimpleauthと同じだったので、
まぁ、そうなのでしょう。。

メモ

・「きめ細かいACL」が売りなOrmauthなのに、なんのアクセスコントロールの確認もしてない。。
・前回のSimpleauthの続きでlogout()も試してみたけど、コレって、いつもtrue返すんじゃない?疑惑。。
(追記)
・package/auth/config/ormauth.php をapp/config/にコピーするの忘れてたけど。。いいんだろうか?


まぁ、今日のトコロはこれでいいか。。
週末、WebGL(three.js)に明け暮れてたんで。。