hampom TODAY

「TODAY」ってタイトルが付くブログが作りたいな、と思った10分後に作ったブログ。

EzAuth でユーザー認証の仕組み #Codeigniter

コメントする »

なんだかイメージですが何重もの構造になっているような気がして頭がおかしくなって死ぬ。という印象があって、後で見たときに絶対「どんな仕組みになっているのかさっぱりわからねぇ」と思う自信100%なので書き残しておく。

EzAuth の認証(というより、ロール)設定は以下の組み合わせによって行われています。

1. ユーザーに直接記録される情報。

テーブル「ez_access_keys」に記録されています。user_id は、ez_users の id と紐付けられており、program と access がアクセスが許可されるエリアになります。

2. プログラムに設定される情報。

各コントローラーのインスタンスに protected_pages というクラス変数により設定されます。配列になっており、それぞれ左辺の値はクラスメソッドを指し、右辺の値はアクセスが許可されるエリア情報です。

ez_access_keys の program に設定されている値は、コード上では $this->ezauth->program に該当し、ez_access_keys の access に設定されている値は、コード上では protected_pages の右辺に該当する、という事です。

program は「家」 access が「鍵」だとすると、proteced_pages のそれぞれ左辺の値は「部屋」

家(default)に対する鍵(user)で開ける事ができる部屋は、 client部屋と changepw部屋。admin部屋を開ける為には admin という鍵が必要になります。

その鍵を持たせるかどうかを、データベースで設定させる訳です。

一方で、ユーザー「admin」はすべての部屋を開けることのできるオールマイティキーを持っているので、client部屋およびchangepw部屋については自由に出入りができる仕組みです。

なお、protected_pages で指定されていない部屋については単純に「鍵がかかっていない」という認識になりますので、認証不要のページは宣言も不要です。

投稿者: hampom

2010年 4月 6日 at 11:46 AM

カテゴリー: 未分類

コメントする

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

%s に接続中

フォロー

Get every new post delivered to your Inbox.

現在332人フォロワーがいます。