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 phpEnregistrez 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 FacebookAvis 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
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
S'il vous plaît, donnez-moi une solution
http://awesomescreenshot.com/0af5iogz93
lorsque je clique sur le lien de connexion avec Facebook, cette erreur s'est produite
Basique
Votre migration ne semble pas avoir le champ pour facebook_id.
est-ce que cela manque ou est-ce que je rate quelque chose
Oui, c'était une erreur, je l'ai incluse maintenant !
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 ?
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
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