Auth パッケージ
Auth パッケージは Fuel における標準化された認証インターフェイスを提供します。 これにより、ユーザは自分自身で新しいドライバを書くことができ、 基本的なメソッドを保つことで、古いコードに新しいドライバを簡単に統合することもできます。
はじめに
誰もが満足するかすべて実装されている Auth パッケージを作成することは不可能です。 フレームワークとして 我々はあなたが認証を行う方法を強制したくありませんが、あなた自身で作成したり他人の作品を使用することを 手助けしたい。 ここで Auth パッケージの出番です。
インターフェースには 3 つのタイプのドライバが含まれています (それ以上のタイプに拡張することができる): login, group & ACL. login ドライバは、ユーザーのログインを処理し同時に複数の login ドライバを扱うことができます。 たとえば、 1 ユーザーが 2 つの login ドライバを使用して、同時に Twitter や独自のネイティブのユーザーからログインすること が可能です。
次のステップとして、あなたが使用しているログインの種類を気にせず group ドライバを使用し、 2 つのタイプのログインを グループ化することができる。 そして大事なことを言い忘れていましたが、あなたはそれらのグループに特定の権限を付与する ACL ドライバを 使用できます。
上記は使い方の一つの例にすぎませんし、それを使う必要もありません。 どのメソッドが 汎用インタフェースの一部であるかとドライバの仕様を理解するために次のセクションを 読んで下さい: ドライバを書く.
含まれているドライバ
Auth パッケージはローカルアクセスを提供する2つのドライバが含まれ、1つ以上のデータベースのテーブルを使用しています。
Simpleauth
名前の通り、これは基本的なドライバセットです。ユーザーの情報を収納するのにデータベーステーブルを使い、 グループ、ロール、 ACL に関しては設定ファイルに収納します。ユーザレコード内のシリアライズされた配列にユーザメタデータは 格納されます。それは多くの機能を持っていませんが、ほとんどのアプリケーションでは仕事をすることができます。 Simpleauth についてはここに記載されています。
Ormauth
このドライバセットは Simpleauth ドライバと同様の機能を提供しますが、ユーザー、グループ、ロール、 および権限に関するすべての情報をデータベースに収納し、この情報にアクセスするためにORMモデルを使用しています。 加えて、配列にユーザーメタデータは収納しないですが、別のテーブルで ORM の EAV コンテナ機能を使いアクセスします。 API は Simpleauth とほとんど互換性がありますが、ユーザー、グループ、もしくはロールデータを返す関数は ORM オブジェクトインスタンスの配列を返すように違いがあります。 Ormauth についてはここに記載されています。
Auth パッケージは、これらのドライバに必要なテーブル構造を作成するためのマイグレーションファイルが含まれています。 それは作成すべきかを Auth 設定ファイルによって決めているので、最初に設定をする必要があります。
サポートクラス
完全なドライバセットに加え、Auth パッケージには、ドライバのいずれかまたはすべてに追加機能を提供するクラス、 サポートクラスが含まれています。
Opauth
Opauth は、PHP 用のマルチプロバイダ認証フレームワークで、composer パッケージとしてインストールされます。 これは、OAuth または OpenID プロトコルを使用して汎用的な認証を提供し、Facebook や Twitter 、 GitHub などのような人気のある OAuth プラットフォームに対する認証のための出来合いの Strategy の十分なリストを持っています。
Opauth ドライバは Auth パッケージに含まれており、 Opauth と (現在のところ) Simpleauth または Ormauth いずれかとの間のインタフェースになります。 OAuth アカウントをローカルの ACL に使用するなど、ローカルアカウントに OAuth のアカウントをリンクできます。 Opauth についてはここに記載されています。
インストール
Auth パッケージは Fuel の配布物に含まれています。 設定で有効にするだけで利用できます。
'always_load' => array(
'packages' => array(
'auth',
),
),
設定
Auth は config/auth.php ファイルに、下記のキーで設定できます:
パラメータ | 型 | デフォルト | 説明 |
---|---|---|---|
driver | 文字列 | 配列 |
|
ロードする Login ドライバ、最初のドライバが Auth::instance() のデフォルト返り値にもなります。 |
verify_multiple_logins | 論理型 |
|
ひとつのドライバでログインの成功を確認したあとにも、継続してログインのチェックを行うかどうか。 これにより複数の方法でログインすることが可能。 |
salt | 文字列 |
|
パスワードのハッシュ化のためにソルトは使用されます。 |
iterations | integer |
|
パスワードのハッシュ化処理で行われた繰り返し回数 (パスワード作成時の"暗号化"の回数) (Auth は PBKDF2を使用)。 より多く繰り返す方がパスワードは安全になりますが、より多く時間がかかります。あまりに多く繰り返すとサーバーがクラッシュすることがあります! |
'verify_multiple_logins' はドライバレベルの設定であることに注意。 Login ドライバ そのものを意味していないし、「ユーザに多重ログインすることを許可する」ということではありません!
auth.php ファイルはこのようになります:
<?php
return array(
// ドライバ
'driver' => array('Simpleauth'),
// 複数ログインを有効にする場合、 true
'verify_multiple_logins' => true,
// セキュリティのために、ソルトを設定しましょう
'salt' => 'Th1s=mY0Wn_$@|+',
);