yutadayo's diary

yutadayo の日記

sfGuardPluginプラグインを入れる。

とあるページに認証を掛けたかったので
symfonyプラグインであるsfGuardPluginプラグインを使ってみた。

まず、
プラグインをインストールしてビルドまでが前提

そして認証を掛けたいモジュールの
①settings.ymlでsfGuardAuthモジュールを有効にします。

    all:
      .settings:
        enabled_modules: [..., sfGuardAuth]

さらに
②settings.ymlでデフォルトのloginとsecureモジュールを変更します。

    login_module:           sfGuardAuth
    login_action:           signin

    secure_module:          sfGuardAuth
    secure_action:          secure

続いて
③apps/frontend/lib/myUser.class.phpで次のように親クラスを変更します。

    class myUser extends sfGuardSecurityUser
    {
    }

次に
④ルーティングルールをrouting.ymlに追記します。

    sf_guard_signin:
      url:   /login
      param: { module: sfGuardAuth, action: signin }

    sf_guard_signout:
      url:   /logout
      param: { module: sfGuardAuth, action: signout }

    sf_guard_password:
      url:   /request_password
      param: { module: sfGuardAuth, action: password }

  これで指定のurlにログインフォームができるはず。

そして
⑤security.ymlで認証を掛けたいモジュールもしくはアプリケーションをセキュアに設定

    default:
      is_secure: on

  ※defaultの部分をアクション名に変えると指定のアクションに認証が掛けれます。


最後に
⑥ID/PASSを設定するために以下のsymfonyコマンドをたたく。

 symfony guard:create-user (ID) (PASS)

おしまい。

※認証後のページ設定や
 フォーム・バリデーションのカスタマイズは
 work/plugins/sfGuardPlugin/modules/sfGuardAuth/
で色々できます。