2015-03-05 4 views
5

J'utilise fosuserbundle pour me connecter et m'inscrire dans mon projet symfony 2.6. Maintenant, je veux permettre à l'utilisateur de se connecter via Facebook ou compte google.Connexion avec facebook ou google en utilisant la bibliothèque Oauth2 dans symfony2

Je veux utiliser la bibliothèque oauth2 de friendsofsymfony obtenir d'ici https://packagist.org/packages/friendsofsymfony/oauth2-php

je bibliothèque installée à l'aide "friendsofsymfony/oauth2-php": "1.1.*@dev" dans composer.phar et les vendeurs mis à jour. Mais je ne suis pas en mesure de trouver la documentation qui peut montrer les étapes à configurer et à utiliser dans la connexion.

Cela devrait fonctionner avec fosuserbundle. Quelqu'un peut-il me suggérer où puis-je obtenir des étapes comment puis-je utiliser la bibliothèque Oauth2 dans mon projet?

Répondre

3

Vous pouvez utiliser HWIOAuthBundle pour activer la connexion avec Facebook ou Google et bien d'autres réseaux sociaux. Voici un tutoriel sur la façon de configurer cet ensemble dans votre application: https://gist.github.com/danvbe/4476697

Aussi, si vous utilisez cet ensemble, vous devriez vérifier mon point essentiel: https://gist.github.com/antoinemineau/8836621#file-fosubuserprovider-php-L47, j'ai ajouté une instruction if qui empêche le code à exécuter si l'api sont ne répond pas comme prévu.

+0

Merci HWIOAuthBundle fonctionne parfaitement! –

0

Voici par exemple comment se connecter via Facebook https://github.com/stfalcon-studio/lost-and-found

Il utilise HWIOAuthBundle + FOSUserBundle + fournisseur de l'utilisateur sur mesure

Vous pouvez facilement ajouter Google ou tout autre propriétaire de la ressource qui est présent dans HWIOAuthBundle. Mais alors vous devez également réécrire un fournisseur d'utilisateur peu.

+0

Un autre exemple, mais avec GitHub OAuth est ici https://github.com/stfalcon-studio/codedill –

0

Cette réponse est correcte: https://stackoverflow.com/a/28879098/2400373

J'ai utilisé ce manuel pour l'intégration: https://gist.github.com/danvbe/4476697

Mais necesary deux changements pour Symfony3. Première:

Dans le code du fichier: services.yml sur Symfony3 est un autre emplacement, l'emplacement correct est: //app/config/services.yml et changer cette ligne:

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

pour cela:

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

changement Deuxième est dans le fichier: //app/config/routing.yml

changer cette ligne:

pattern: /login/check-facebook 

pour cela:

path: /login/facebook