2015-03-05 10 views
5

Ich benutze fosuserbundle für die Anmeldung und Registrierung in meinem symfony 2.6 Projekt. Jetzt möchte ich Benutzer über Facebook oder Google-Konto anmelden können.Einloggen mit Facebook oder Google mit Oauth2 Bibliothek in symfony2

Ich möchte OAuth2 Bibliothek von friendsofsymfony verwenden, um von hier bekommen https://packagist.org/packages/friendsofsymfony/oauth2-php

I-Bibliothek installiert haben "friendsofsymfony/oauth2-php" mit: "1.1.*@dev" in composer.phar und aktualisiert Anbieter. Aber ich bin nicht in der Lage, die Dokumentation zu finden, die die Schritte zur Konfiguration und Verwendung bei der Anmeldung zeigen kann.

Es sollte mit fosusbundle arbeiten. Kann jemand mir vorschlagen, wo ich Schritte bekommen kann, wie kann ich Oauth2 Bibliothek in meinem Projekt benutzen?

Antwort

3

Sie können HWIOAuthBundle verwenden, um die Anmeldung mit Facebook oder Google und vielen anderen sozialen Netzwerken zu ermöglichen. Hier ist eine Anleitung, wie man dieses Bündel auf Setup in der Anwendung: https://gist.github.com/danvbe/4476697

Auch wenn Sie dieses Paket verwenden, sollten Sie meinen Kern überprüfen: https://gist.github.com/antoinemineau/8836621#file-fosubuserprovider-php-L47, fügte ich eine if-Anweisung, die den Code verhindert ausgeführt werden, wenn die api sind reagiert nicht wie erwartet.

+0

Dank HWIOAuthBundle perfekt funktioniert! –

0

Hier ist Beispiel dafür, wie über Facebook anmelden https://github.com/stfalcon-studio/lost-and-found

Es verwendet HWIOAuthBundle + FOSUserBundle + benutzerdefinierte Anbieter

Sie können ganz einfach hinzufügen, Google oder andere Ressourceneigentümer, die in HWIOAuthBundle vorhanden ist. Aber dann müssen Sie auch ein bisschen Benutzer-Provider neu schreiben.

+0

Ein anderes Beispiel, aber mit GitHub OAuth ist hier https://github.com/stfalcon-studio/codedill –

0

Diese Antwort ist richtig: https://stackoverflow.com/a/28879098/2400373

ich dieses Handbuch für die Integration verwendet: https://gist.github.com/danvbe/4476697

Aber ist necesary zwei Änderungen für Symfony3. Erstens:

Im Code der Datei: services.yml auf Symfony3 anderer Ort ist, der richtige Ort ist: //app/config/services.yml und diese Zeile ändern:

arguments: [@fos_user.user_manager,{facebook: facebook_id, google: google_id}] 

hierfür:

arguments: ['@fos_user.user_manager',{facebook: facebook_id, google: google_id}] 

Zweite Änderung ist in der Datei: //app/config/routing.yml

ändern Sie diese Zeile:

pattern: /login/check-facebook 

hierfür:

path: /login/facebook