Socialite Laravel 5 avec intégration Facebook

Souhaitez-vous proposer une fonctionnalité de connexion Facebook en plus d'une connexion par e-mail classique ? Voici un tutoriel pour y parvenir avec Laravel 5 et le Plugin SocialiteCe tutoriel est basé sur Tutoriel de Matt Stauffer.

Tout d'abord, insérez Laravel Socialite via le compositeur :

compositeur nécessite laravel/socialite

Créez la migration des utilisateurs et du password_remember :

$table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->string('avatar'); $table->string('password', 60); $table->boolean('is_admin'); $table->string('facebook_id'); $table->rememberToken(); $table->timestamps();

Obtenez votre identifiant de développeur Facebook et votre secret à l'adresse suivante : https://developers.facebook.com/.

Insérez les identifiants Facebook dans le fichier app/services.php :

'facebook' => [ 'client_id' => env('FACEBOOK_ID'), 'client_secret' => env('FACEBOOK_SECRET'), 'redirect' => env('FACEBOOK_URL'), ],

Dans mon cas, je les stocke dans le fichier .env en tant que variables d’environnement :

ID_FACEBOOK=xxx SECRET_FACEBOOK=yyy URL_FACEBOOK=http://myapp.devapp/auth/facebook/callback

Créez un modèle d'utilisateur et assurez-vous que certains champs sont remplissables :

Donc le modèle et les migrations sont préparés, si nécessaire, exécutez votre migration :

migration d'artisan php

Enregistrez un nouveau contrôleur dans votre fichier de routes (s'il existe déjà un contrôleur d'authentification, faites-le au-dessus du contrôleur d'authentification) :

Route::get('/auth/facebook', 'Auth\SocialController@redirectToProvider'); Route::get('/auth/facebook/callback', 'Auth\SocialController@handleProviderCallback');

Créez le contrôleur d'authentification sociale Facebook (app/Http/Controllers/Auth/SocialController.php) :

redirect(); } /** * Obtenir les informations de l'utilisateur à partir de Facebook. * * @return Response */ public function handleProviderCallback() { $user = Socialite::driver('facebook')->user(); $authUser = $this->findOrCreateUser($user); Auth::login($authUser, true); return redirect()->back(); } /** * Renvoyer l'utilisateur s'il existe ; créer et renvoyer s'il n'existe pas * * @param $fbUser * @return User */ private function findOrCreateUser($fbUser) { if ($authUser = User::where('facebook_id', $fbUser->id)->first()) { return $authUser; } return User::create([ 'name' => $fbUser->name, 'email' => $fbUser->email, 'facebook_id' => $fbUser->id, 'avatar' => $fbUser->avatar ]); } }

Vous pouvez désormais vous connecter à votre contrôleur d'authentification sociale depuis n'importe où dans votre vue blade :

 Connectez-vous avec Facebook

Avis de sécurité important

Si vous souhaitez conserver la possibilité pour les utilisateurs de se connecter, assurez-vous d'avoir des contrôles de validation de mot de passe vides, afin que les utilisateurs ne puissent pas se connecter uniquement avec des adresses e-mail Facebook.

Voilà, c'est tout. Avez-vous des ajouts à apporter à ce tutoriel ? Faites-le moi savoir dans les commentaires.

Bonjour tout le monde

Réflexions de 9 sur « Laravel 5 socialite with Facebook integration »

  1. Objet non trouvé !

    L'URL demandée n'a pas été trouvée sur ce serveur. Le lien sur la page de référence semble être erroné ou obsolète. Veuillez informer l'auteur de cette page de l'erreur.

    Si vous pensez qu'il s'agit d'une erreur de serveur, veuillez contacter le webmaster.
    Erreur 404
    hôte local
    Apache/2.4.12 (Unix) OpenSSL/1.0.1p PHP/5.5.27 mod_perl/2.0.8-dev Perl/v5.16.3

  2. Votre migration ne semble pas avoir le champ pour facebook_id.

    est-ce que cela manque ou est-ce que je rate quelque chose

  3. Salut, ton tutoriel est le meilleur, mais j'ai un problème avec le mot de passe Facebook
    je veux également enregistrer le mot de passe de Facebook. Existe-t-il une méthode pour obtenir le mot de passe et l'enregistrer dans la base de données ?

  4. tout fonctionne mais le champ e-mail est toujours nul. Comment puis-je obtenir le champ e-mail après m'être connecté via Facebook

  5. Bonjour,
    J'ai hébergé mon projet Laravel sur 000webhost.com, et lorsque je clique sur la connexion Facebook, il m'indique que la page n'a pas été trouvée. Savez-vous pourquoi cela s'affiche ?
    S'il vous plaît, aidez-moi à ce sujet.
    Merci

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

fr_FRFrançais
Défiler vers le haut