服务“security.authentication.manager”依赖于不存在的服务“security.user.provider.concrete.fos_userbundle”
我试图启用FOSUserBundle以及FOSFacebookBundle。
我有任何网址异常。服务“security.authentication.manager”依赖于不存在的服务“security.user.provider.concrete.fos_userbundle”
任何想法家伙?
ServiceNotFoundException的:服务 “security.authentication.manager” 对一个不存在的服务依赖 “security.user.provider.concrete.fos_userbundle”
config.yml
fos_user:
db_driver: mongodb
firewall_name: main
user_class: Acme\AcmeBundle\Document\User
fos_twitter:
file: %kernel.root_dir%/../vendor/twitteroauth/twitteroauth/twitteroauth.php
consumer_key: ''
consumer_secret: ''
callback_url: ''
fos_facebook:
file: %kernel.root_dir%/../vendor/facebook/src/base_facebook.php
alias: facebook
app_id: ''
secret: ''
cookie: true
permissions: [email, user_birthday, user_location]
services:
my.facebook.user:
class: Acme\AcmeBundle\Security\FacebookProvider
arguments:
facebook: "@fos_facebook.api"
userManager: "@fos_user.user_manager"
validator: "@validator"
container: "@service_container"
security:
factories:
- "%kernel.root_dir%/../vendor/bundles/FOS/TwitterBundle/Resources/config/security_factories.xml"
- "%kernel.root_dir%/../vendor/bundles/FOS/FacebookBundle/Resources/config/security_factories.xml"
providers:
my_fos_facebook_provider:
id: my.facebook.user
firewalls:
public:
pattern: ^/.*
form_login:
login_path: /login
provider: fos_userbundle
fos_facebook:
app_url: ""
server_url: ""
login_path: /login
check_path: /login_check/facebook
provider: my_fos_facebook_provider
anonymous: true
logout: 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 }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
我将fos_userbundle id添加到提供者部分,现在它工作正常。
providers:
my_fos_facebook_provider:
id: my.facebook.user
fos_userbundle:
id: fos_user.user_manager
使用'fos_user.user_manager'是_deprecated_。更好地使用'fos_user.user_provider.username' [源](https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/user_manager.md#securitybundle-integration) – KmeCnin
我刚刚得到这个错误。但你的问题不是身份证。但是你忘了在你的防火墙中设置你的提供者名称('fos_userbundle')'form_login.provider' – user3502626
我尝试了所有提供的解决方案在*,但没有为我工作。
我的解决办法是重新命名fos_userbundle中fos_user安全:供应商:部分和安全:防火墙:主:form_login:供应商:。
希望这可以帮助那里的人。
对于symfony3
providers:
in_memory:
memory: ~
fos_userbundle:
id: fos_user.user_provider.username
你清除缓存? –
是的,当然,我做了 – synthetic