Symfony1.4で認証機能をつける
Doctrineを利用している場合。
# symfony generate:project frontend # symfony generate:app myApp # symfony plugin:install sfDoctrineGuardPlugin # symfony doctrine:build --all --and-load --no-confirmation # symfony cc
apps/myApp/config/security.yml
default: is_secure: true
に変更。
http://www.symfony-project.org/reference/1_4/en/08-Security
apps/myApp/lib/myUser.class.php
sfBasicSecurityUserからsfGuardSecurityUserに変更
class myUser extends sfGuardSecurityUser { }
setting.ymlに追加
# apps/myApp/config/settings.yml
enabled_modules: [default, sfGuardAuth] .actions: login_module: sfGuardAuth login_action: signin
sfGuardAuth(ログイン機能), sfGuardUser(ユーザ管理), sfGuardGroup(グループ管理), sfGuardPermission(権限管理) のモジュールの種類があります。frontend/backendに合わせて利用します。
テストユーザの追加
# symfony guard:create-user user@localhost.com username password # symfony guard:promote username
これで基本的なログイン構造は完成です。
apps/myApp/templates/layout.phpなどで
ログアウトリンクを追加します。
<?php echo link_to('Logout', 'sf_guard_signout') ?>
apps/myApp/config/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 }
参考:
http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin
http://www.symfony-project.org/jobeet/1_4/Doctrine/ja/13