2009年4月8日水曜日

 

【symfony】ユーザ認証プラグイン sfGuardPlugin

参照

Jobeet - 13日目: ユーザ - Absolute Playing!

symfonyに備えてあるアクセス制限の設定。

以下の設定で全てのアクセスをブロック。デフォルトでは「off」になっている。

/* apps/myapp/config/security.yml */
default:
  is_secure: on

credentials」を設定してユーザごとの権限も分けることが出来る。

default:
  is_secure:   off
  credentials: admin

モジュールやアクションごとにアクセス制限を設定するには各モジュールに「config/」ディレクトリを作り「security.yml」を作成する。

/* apps/myapp/modules/mymodule/config/security.yml */
index:
  is_secure: off
 
all:
  is_secure: on

アクセス制限書けた場合の設定や認証についての設定を「setting.yml」でします。「all:」の部分を変更。

/* apps/myapp/config/setting.yml */
all:
  .settings:
    # Form security secret (CSRF protection)
    csrf_secret:       UniqueSecret   
    # Output escaping settings
    escaping_strategy:      true           
    escaping_method:        ESC_SPECIALCHARS # Function or helper used for escaping. Accepted values: ESC_RAW, ESC_ENTITIES, ESC_JS, ESC_JS_NO_ENTITIES, and ESC_SPECIALCHARS.

    enabled_modules: [default, sfGuardAuth]

  .actions:
    login_module:    sfGuardAuth
    login_action:    signin
    secure_module:          default   # To be called when a user doesn't have
    secure_action:          secure    # The credentials required for an action

これはsfGuardPluginを使って認証する為の設定です。

symfonyでユーザ認証の処理をやってくれるプラグインが有ります。sfGuardPluginというもので、以下のようにsymfonyコマンドからインストールします。

インストール

/* インストールコマンド */
$ symfony plugin:install 

以下のコマンドでは自分の環境(さくら・スタンダード)はエラー。「You try to install a symfony 1.0 plugin~」とか。

$ symfony plugin-install http://plugins.symfony-project.com/sfGuardPlugin

モデルを再構築。DBが初期化されるので注意。

$ php symfony propel:build-all-load --no-confirmation

モデルを再生成したのでキャッシュをクリア。

$ php symfony cc

アカウント作成コマンド

ユーザアカウント作成を作成します。

/* アカウント作成 */
$ php symfony guard:create-user admin password
$ php symfony guard:promote admin

この上記コマンドでユーザを管理者として登録する模様。

原文)Promotes a user as a super administrator
訳文)最高の管理者としてユーザを昇進させます。

プラグインに関するオプションを見るコマンド。

/* オプション一覧コマンド */
$ php symfony list guard

認証にプラグインを使うように変更。元の継承は「sfBasicSecurityUser 」。

/* apps/myapp/lib/myUser.class.php */
sfGuardSecurityUser
  {
  }

ここまでがsfGuardPluginを使うための工程。

ログイン・ログアウトや認証時間などリンク先参照。

sfGuard plugin - symfony-doc-ja

sfGuardPlugin使った認証はテーブル作ってするようだ。

既存のテーブルを利用する認証システムplugin - symfonyはじめました

ラベル:


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google