Auth パッケージ

Auth パッケージは Fuel における標準化された認証インターフェイスを提供します。 これにより、ユーザは自分自身で新しいドライバを書くことができ、 基本的なメソッドを保つことで、古いコードに新しいドライバを簡単に統合することもできます。

インターフェイス

Auth クラスは汎用メソッドのための静的インターフェイスを提供します。 また、ロード済みのドライバのインスタンスを得るための __callStatic マジックメソッドを含み、 ドライバのメソッドを静的に呼び出します(これは、並列なドライバが Auth の設定で無効化されている場合に限ります)。

forge($custom = array())

Auth ドライバ、あるいは Auth の config ファイルで定義されたドライバをインスタンス化します。オプションとして、 インスタンス化すべきドライバを定義したカスタムな設定配列を渡すことができます。

静的 はい
パラメータ
パラメータ 規定値 説明
$custom mixed ドライバの設定配列、もしくは、インスタンス化するドライバ名の文字列。引数が渡されなければ、 Auth config ファイルの値が使われます。
返り値 Auth_Login_Driver インスタンス
例外 AuthException、定義されたドライバがロードできなかった場合、もしくは、同じドライバ id で他のドライバがインスタンス化されている場合。
// デフォルトインスタンス(複数可)を作成
Auth::forge();

// SimpleAuth のインスタンスを作成
Auth::forge('simpleauth');

// あるいは、複数のドライバ設定を記述
Auth::forge(array('driver' => 'simpleauth', 'id' => 'customid'));

Auth config ファイルに書かれた単一の Auth ドライバのみを利用したい場合、このメソッドを手動で呼ぶ必要はありません。 デフォルトインスタンスは、他のメソッドが最初に必要としたときに自動的に作成されます。

instance($instance = null)

ロードされたドライバのインスタンスを取得します。複数のドライバが config で設定されている場合、 最初にロードされたドライバがデフォルトドライバに設定されます。

静的 はい
パラメータ
パラメータ 規定値 説明
$instance null null でデフォルトドライバを取得、もしくは、ドライバ id で特定のドライバを取得。
返り値 Auth_Login_Driver
// デフォルトドライバをログアウト
Auth::instance()->logout();

// SimpleAuth ドライバをログイン
Auth::instance('simpleauth')->login(Input::post('username'), Input::post('password'));

デフォルトインスタンスが求められたときに、ロードされていない場合、 instance() は forge() を呼び、 Auth config ファイルで定義された設定に基づくデフォルトインスタンスを作成します。

unload($driver_id = null)

ロード済みドライバのインスタンスを削除します。引数が null の場合、デフォルトインスタンスが削除されます。

静的 はい
パラメータ
パラメータ 規定値 説明
$driver_id null null でデフォルトドライバを削除、もしくは、ドライバ id で特定のドライバを削除。
返り値 論理型、削除が成功した場合 true 、そうでなければ false
例外 AuthException、ドライバ id が正しくない場合。
// デフォルトドライバを削除する
Auth::unload();

// SimpleAuth ドライバを削除する
Auth::unload('simpleauth');

check($specific = null)

ロードされたすべてのドライバをチェック、もしくは、パラメータで指定されたものをチェックします。

静的 はい
パラメータ
パラメータ 規定値 説明
$specific null null で全ドライバ、もしくは、ひとつ以上のドライバ id (文字列、または、文字列の配列)で特定のドライバをチェック。
返り値 論理型、(渡されたドライバのうち)ひとつでもログイン認証が成功したかどうか。
if ( ! Auth::check())
{
	Response::redirect('login');
}

// 特定のドライバ
Auth::check('simpleauth');

// 複数のドライバ
Auth::check(array('simpleauth', 'twitter'));

verified($specific = null)

特定の認証済みドライバ、もしくは認証済みの全ドライバを取得します。

静的 はい
パラメータ
パラメータ 規定値 説明
$specific null null で返り値に認証済みの全ドライバ配列、もしくは、ひとつの特定のドライバ id 。
返り値 Auth_Login_Driver の配列か、単体の Auth_Login_Driver 、 または、 false 。
// simpleauth ドライバが認証済みか確認
$driver = Auth::verified('simpleauth');

logout()

現在ログイン中のすべてのドライバをログアウトします。

register_driver_type($type, $check_method)

新しいドライバタイプを登録します。

静的 はい
パラメータ
パラメータ 規定値 説明
$type 必須 登録する Auth ドライバタイプ。
$check_method 必須 このタイプのドライバの認証確認時に呼ばれるドライバメソッド。
// 'role' タイプのドライバを登録
if ( ! Auth::register_driver_type('role', 'check_role'))
{
	throw new AuthException('role が登録できませんした');
}

すべての登録済みドライバに対して、タイプとメソッドはユニークでなければなりません。そうでなければ、このメソッドは 'false' を返します。

unregister_driver_type($type)

ドライバタイプの登録を解除します。

静的 はい
パラメータ
パラメータ 規定値 説明
$type 必須 削除する Auth ドライバタイプ。
// 'role' タイプのドライバを削除
Auth::unregister_driver_type('role');

デフォルトのドライバタイプである 'login' 、 'group' 、 'acl' は登録解除できないことに注意!