https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.mdに記載されているように、FOS バンドルをインストールしました 。
composer を使用してインストールし、ユーザー クラスを設定すると、次のようになります。
[Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException]
The service "fos_user.security.login_manager" has a dependency on a non-exi
stent service "security.context".
パスの存在を確認したところ、fosuserbundle に含まれている contextinterface があります... コンソールを使用すると、常に同じエラーで中止されます。誰?
appKernel でバンドルを有効にしました (セキュリティ バンドルも有効になっています)。
...
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
...
new FOS\UserBundle\FOSUserBundle(),
...
config.yml に構成を追加しました。
# fos UserBundle config
fos_user:
db_driver: orm
firewall_name: main
user_class: SDDB\MainBundle\Entity\User
routing.yml を拡張しました。
# USER AUTH STUFF
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile
および security.yml:
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }