如何在OAuthAwareUserProviderInterface中访问config.yml参数

时间:2014-01-16 19:47:17

标签: php symfony parameters config hwioauthbundle

我们正在使用HWIOAuhtBundle进行身份验证,因此请使用此类用户提供程序接口:

    class OAuthUserProvider implements 
          UserProviderInterface , OAuthAwareUserProviderInterface
    {
      ...
      public function loadUserByUsername($username)
      {
         ...
      }
      public function loadUserByOAuthUserResponse(UserResponseInterface $response)
      {
         ...
      }
   }

是否有办法在OAuthUserProvider类的方法中访问config.yml中指定的参数,例如facebook app id?

hwi_oauth:
    resource_owners:
        facebook:
            type:                facebook
            client_id:           %fb_app%

或如何访问ServiceContainer?然后通过这种方式获得parms: http://symfony.com/doc/current/components/dependency_injection/parameters.html

1 个答案:

答案 0 :(得分:0)

可以将其作为OAuthUserProvider构造函数的参数传递。

1)使用正确的参数名称向服务添加参数。

;services.yml

services:
     my_user.oauth_user_provider: 
         class: %my_user.oauth_user_provider.class%
         arguments: [%facebook_secret%]

2)在类ctor中添加一个参数。

//OAuthUserProvider.php

class OAuthUserProvider implements 
      UserProviderInterface , OAuthAwareUserProviderInterface
{
    public function __construct($secret)
    {
       ...
    }
...
}