2012-09-16 4 views
-1

FOSUserBundle 및 FOSUserFacebookBundle을 사용하여 사용자를 인증하고 있습니다. 문제는 내가/로그인 페이지를 방문 할 때입니다. 두 개의 텍스트 필드에 사용자 이름과 비밀번호가 있습니다.FOSUserBundle 및 FOSFacebookUser를 사용하여 사용자 로그인에 문제가 발생했습니다.

The Facebook user could not be retrieved from the session. 

이 나는 ​​양식을 통해 아니라 페이스 북을 통해 사용자가 로그인하고 있기 때문에 그런 이상한 오류가,하지만 난 로깅하고있는 것처럼 그것의 : I 입력 사용자 이름과 암호, 나는 다음과 같은 오류를 얻고 때 페이스 북을 통해 사용자. 그래서 난 내 소스 코드와 함께 놀았 여기 내 security.yml/방화벽 설정입니다 :

firewalls: 
      main: 
       pattern: ^/.* 
       form_login: 
        login_path: /login 
        check_path: /login_check  
        provider: fos_userbundle 
       fos_facebook: 
        app_url: "http://apps.facebook.com/myapp/" 
        server_url: "http://localhost/Symfony/web/app_dev.php" 
        login_path: /login 
        check_path: /login_check 
        default_target_path:/
        provider: my_fos_facebook_provider 
       anonymous: true 
       logout: 
        path: /logout 
        target:/
        handlers: ["fos_facebook.logout_handler"] 
       #http_basic: 
       # realm: "Secured Demo Area" 
      login: 
       pattern: ^/login$ 
       security: false 

내가 대해 걱정하는 것은/login_check가에 페이스 북의 세션을 확인하는 것입니다, 이는 내가 돈을 항상 존재 정말로 원하지 않아. fos_facebook에 대한 login_path와 check_path를 변경하면 모든 것이 잘 동작합니다. 어떤 문제가 발생할 수 있으며 어떻게이 문제를 해결할 수 있습니까?

답변

0

check_path는 form_login 및 fos_facebook에서 달라야합니다. 예 :

  form_login: 
       login_path: /login 
       check_path: /login_check  
       provider: fos_userbundle 
      fos_facebook: 
       app_url: "http://apps.facebook.com/myapp/" 
       server_url: "http://localhost/Symfony/web/app_dev.php" 
       login_path: /login 
       check_path: /login_check/facebook 
       default_target_path:/
       provider: my_fos_facebook_provider 
+0

여기가 같은 이유는 무엇입니까 https://github.com/ollietb/OhFOSFacebookUserBundle/blob/master/Resources/config/security.yml – xonegirlz

+0

.. 내가 다른 경우, 그 경로를 확인해야합니다. 나에게 .. – adit

0

나는 같은 문제에 부딪 쳤고 Carlos가 맞습니다.

_security_check: 
    path: /login_check 
    defaults: { _controller: FOSUserBundle:Security:check } 

_security_logout: 
    pattern: /logout 

_security_check_fb: 
    path: /login_check/facebook 
    defaults: { _controller: FOSUserBundle:Security:check } 

이 마지막으로 당신은 페이스 북의 JS를 편집해야

form_login: 
    login_path: /login 
    check_path: /login_check  
    provider: fos_userbundle 
fos_facebook: 
    app_url: "http://apps.facebook.com/myapp/" 
    server_url: "http://localhost/Symfony/web/app_dev.php" 
    login_path: /login 
    check_path: /login_check/facebook 
    default_target_path:/
    provider: my_fos_facebook_provider 

을하고 routing.yml에 :

에 따라 변화 할 필요가

function goLogIn(){ 
    window.location.href = "{{ path('_security_check_fb') }}"; 
} 

이제 폼이나 페이스 북으로 아무런 문제없이 로그인 할 수 있습니다.

관련 문제