2016-02-04 33 views
1

我正在構建一個symfony REST Api,其中我試圖讓HWIOAuthBundle,FOSUserBundle和LexikJWTBundle一起工作。HWIOAuthBundle facebook 443錯誤訪問

我跟着this gist進行HWIOAuthBundle/FOSUserBundle集成。

現在,我在登錄/登錄路徑時收到了Facebook登錄表單。但submition後,我得到這個錯誤:

[2/2] HttpTransportException: Error while sending HTTP request 
[1/2] RequestException: Failed to connect to graph.facebook.com port 443: Bad access 


INFO - Matched route "hwi_oauth_service_redirect". 

CRITICAL - 
Uncaught PHP Exception HWI\Bundle\OAuthBundle\OAuth\Exception\HttpTransportException: 
"Error while sending HTTP request" 
at C:\myProject\vendor\hwi\oauth-bundle\OAuth\ResourceOwner\AbstractResourceOwner.php 
line 257 

DEBUG - 
Notified event "kernel.request" to listener 
"Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke". 

...

我現在正在尋找關於這個幫助。或者以其他任何方式讓這些軟件包一起工作。

config.yml:

hwi_oauth: 
# list of names of the firewalls in which this bundle is active, this setting MUST be set 
firewall_names: [auth] 

http_client: 
    timeout:  10000 
    verify_peer: false 
    max_redirects: 1000 
    ignore_errors: false 

fosub: 
    username_iterations: 300 
    properties: 
     # these properties will be used/redefined later in the custom FOSUBUserProvider service. 
     facebook: facebook_id 
# an optional setting to configure a query string parameter which can be used to redirect 
# the user after authentication, e.g. /connect/facebook?_destination=/my/destination will 
# redirect the user to /my/destination after facebook authenticates them. If this is not 
# set then the user will be redirected to the original resource that they requested, or 
# the base address if no resource was requested. This is similar to the behaviour of 
# [target_path_parameter for form login](http://symfony.com/doc/2.0/cookbook/security/form_login.html). 
# target_path_parameter: _destination 

# an optional setting to use the HTTP REFERER header to be used in case no 
# previous URL was stored in the session (i.e. no resource was requested). 
# This is similar to the behaviour of 
# [using the referring URL for form login](http://symfony.com/doc/2.0/cookbook/security/form_login.html#using-the-referring-url). 
# use_referer: true 

# here you will add one (or more) configurations for resource owners 
resource_owners: 
    facebook: 
     type:    facebook 
     client_id:   {id} 
     client_secret:  {secret} 
     scope:   "" 
     infos_url:   "https://graph.facebook.com/me?fields=name,email,picture.type(square)" 
     options: 
      display: popup 

security.yml:

firewalls: 
    auth: 
     pattern: ^/api/minisite/user/auth 
     anonymous: true 
     stateless: true 
     form_login: 
      check_path: /api/minisite/user/auth/login_check 
      success_handler: lexik_jwt_authentication.handler.authentication_success 
      failure_handler: lexik_jwt_authentication.handler.authentication_failure 
      username_parameter: username 
      password_parameter: password 
      require_previous_session: false 
     oauth: 
      resource_owners: 
       facebook:  "/api/minisite/user/auth/facebook/login/check-facebook" 
      login_path:  /api/minisite/user/auth/facebook/login 
      check_path: /api/minisite/user/auth/login_check 
      failure_path:  /api/minisite/user/auth/facebook/login 
      oauth_user_provider: 
       #this is my custom user provider, created from FOSUBUserProvider - will manage the 
       #automatic user registration on your site, with data from the provider (facebook. google, etc.) 
       service: my_user_provider 
     logout:  true 
     anonymous: true 

access_control: 
    - { path: ^/api/minisite/user/auth, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/api/minisite, roles: IS_AUTHENTICATED_FULLY } 
+0

看起來我只需要清除Facebook開發人員應用程序帳戶中的「ip」字段。 – TrtG

回答

-1

我在本地主機上使用HWI同樣的問題。我不知道,但如果是您的情況,請嘗試將您的作品上傳到服務器上。這個問題的原因是你正在使用端口80,但Facebook需要你使用端口443或使用ipv6。 希望這個幫助

1

在你的config.yml文件中進行配置。

hwi_oauth: 
     http_client: 
      verify_peer: false 

設置此項可讓您關閉SSL驗證。