2012-03-29 17 views
1

So habe ich das FOSFacebook Bundle integriert in die App neben dem FOSUser Bundle. Jetzt funktioniert es richtig auf meinem Dev-Server minus ein paar Bugs, aber es funktioniert.Symfony2 - FOSFacebook Bundle - Subdomain

UPDATE: Also aus irgendeinem Grund facebook das Cookie setzt statt subdomain.mysite.com zu mysite.com.au was bedeutet, dass es auf den Keks zu holen schlägt fehl, und geht auf die Seite Standard Fehler, der ist /Facebook Login.

Jetzt aus irgendeinem Grund, wenn ich es auf meinem Live-Server, der die gleiche Adresse (Ich ändern meine Hosts-Datei, um die Domäne zu simulieren) bereitgestellt habe, wenn ich versuche, ich bekomme "Keine Route gefunden für" GET/facebook/login " Wenn ich versuche, auf diese Seite auf dem Entwickler zuzugreifen, bekomme ich die gleiche Nachricht, aber normalerweise loggt er mich ein und leitet mich dann zum Index weiter. Auf dem Leben bleibt es stecken/facebook/login

Hier ist meine security.yml

security: 
    encoders: 
     "FOS\UserBundle\Model\UserInterface": sha512 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 

    providers: 
     fos_userbundle: 
      id: fos_user.user_manager 
     my_fos_facebook_provider: 
      id: my.facebook.user 
    factories: 
     - "%kernel.root_dir%/../vendor/bundles/FOS/FacebookBundle/Resources/config/security_factories.xml" 
    firewalls: 
     public: 
      pattern: ^/ 
      fos_facebook: 
       app_url: "(set to the apps.facebook link I have)" 
       server_url: "http://testbed.mysite.com/app_dev.php/" 
       check_path: /facebook/check 
       login_path: /facebook/login 
       default_target_path:/
       provider: my_fos_facebook_provider 
      form_login: 
       success_handler: authentication_handler 
       failure_handler: authentication_handler 
       provider: fos_userbundle 
      anonymous: true 
      logout: true 



    access_control: 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/testing/secure/, role: IS_AUTHENTICATED_FULLY } 
     - { path: ^/admin/secure/, role: ROLE_ADMIN } 
     - { path: ^/account, role: IS_AUTHENTICATED_FULLY } 
    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

Wenn Sie einen Blick auf andere Dateien benötigen, lassen Sie mich k jetzt

Offensichtlich gibt es keine Route für/facebook/login, aber ich glaube, dass es so sein soll. Irgendwelche Ideen Leute?

+0

Sie müssen check_path UND login_path als Routen in Ihrer Routing-Konfiguration definieren – AlterPHP

+0

Ich habe check_path als leere Route definiert und das funktioniert gut. Wenn ich login_path auf eine leere Route setze, beschwert sich symfony, dass die Route leer ist. Wenn ich eine Controller-Aktion anschließe und eine Vorlage rendere, rendert sie nur die Vorlage und macht danach nichts mehr. Was merkwürdig ist, ist, dass es auf meiner Dev-Seite scheint, auf die Login-Seite weiterzuleiten, aber symfony behandelt dies korrekt. Auf meinem Live-Server bleibt es auf dieser Seite hängen. – CriticalImpact

Antwort

0

Gerade definieren login_path als Standardpfad im security.yml einzurichten:

_security_login: 
    pattern: /login 
    requirements: 
     _scheme: https 

_security_check: 
    pattern: /login_check 
    requirements: 
     _scheme: https 

_security_logout: 
    pattern: /logout 
    requirements: 
     _scheme: https 

Sie können Ihre eigenen Controller für login_path definieren, wenn Sie eine spezielle Behandlung benötigen, aber Sie haben nicht zu!

0

Es stellt sich heraus, dass ich irgendwie auf meiner Live-Site vergessen habe, parameters.ini korrekt einzurichten, und als ich versuchte, mich einzuloggen, würde es fehlschlagen, aber nie wirklich vollständig ausfallen.