我在Symfony2
的一个项目中工作,我需要使用 facebook
用户登录我的应用程序,所以我安装了HwiOAuthBundle
,当我运行我的应用程序时,我收到此错误:You have requested a non-existent service "hwi_oauth.account.connector"
这是我对捆绑包的配置:
config.yml:
hwi_oauth:
firewall_name: main_hwi
http_client:
verify_peer: false
connect:
confirmation: true
resource_owners:
facebook:
type: facebook
client_id: "%oauth.facebook.id%"
client_secret: "%oauth.facebook.secret%"
安全.yml
security:
encoders:
SymfonyComponentSecurityCoreUserUser: plaintext
OCUserBundleEntityUser: sha512
role_hierarchy:
ROLE_ADMIN: [ROLE_AUTEUR, ROLE_MODERATEUR]
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
hwi:
id: oc.oauth.user_provider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main_hwi:
context: user
pattern: /.*
oauth:
resource_owners:
facebook: /login/check-facebook
login_path: /connect
failure_path: /connect
oauth_user_provider:
service: oc.oauth.user_provider
logout: true
anonymous: true
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
路由.yml
hwi_oauth_connect:
resource: "@HWIOAuthBundle/Resources/config/routing/connect.xml"
prefix: /connect
hwi_oauth_redirect:
resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml"
prefix: /connect
hwi_oauth_login:
resource: "@HWIOAuthBundle/Resources/config/routing/login.xml"
prefix: /login
facebook_login:
pattern: /login/check-facebook
oc_platform:
resource: "@OCPlatformBundle/Resources/config/routing.yml"
prefix: /platform
用户提供程序.php
<?php
namespace OCPlatformBundleOAuth;
use HWIBundleOAuthBundleSecurityCoreUserOAuthUserProvider as BaseOAuthUserProvider;
class UserProvider extends BaseOAuthUserProvider {
}
我终于找到了 2 个解决此问题的有用教程。 以下是链接
Symfony2 with HwiOAuthBundle Without FOSUserBundle
Symfony2 with HwiOAuthBundle with FOSUserBundle