Ce didacticiel vous guidera tout au long du processus d'ajout de la fonctionnalité de connexion Facebook à votre application Laravel.
Laravel Socialite fournit une interface expressive et fluide pour l'authentification OAuth avec Facebook, Twitter, Google, LinkedIn, GitHub, GitLab et Bitbucket.
Installez-le via Composer :
composer require laravel/socialite
Ajoutez ce qui suit à votre fichier config/services.php :
'facebook' => [ 'client_id' => env('FACEBOOK_CLIENT_ID'), 'client_secret' => env('FACEBOOK_CLIENT_SECRET'), 'redirect' => env('FACEBOOK_REDIRECT_URI'), ],
Ensuite, ajoutez-les à votre fichier .env :
FACEBOOK_CLIENT_ID=your_facebook_app_id FACEBOOK_CLIENT_SECRET=your_facebook_app_secret FACEBOOK_REDIRECT_URI=http://localhost:8000/login/facebook/callback
Ajoutez ces routes à votre routes/web.php :
use App\Http\Controllers\Auth\FacebookController; Route::get('login/facebook', [FacebookController::class, 'redirectToFacebook'])->name('login.facebook'); Route::get('login/facebook/callback', [FacebookController::class, 'handleFacebookCallback']);
Créer un nouveau contrôleur :
php artisan make:controller Auth/FacebookController
Implémenter le contrôleur :
redirect(); } public function handleFacebookCallback() { try { $user = Socialite::driver('facebook')->user(); $finduser = User::where('facebook_id', $user->id)->first(); if ($finduser) { Auth::login($finduser); return redirect()->intended('dashboard'); } else { $newUser = User::create([ 'name' => $user->name, 'email' => $user->email, 'facebook_id'=> $user->id, 'password' => encrypt('123456dummy') ]); Auth::login($newUser); return redirect()->intended('dashboard'); } } catch (\Exception $e) { dd($e->getMessage()); } } }
Ajoutez facebook_id au tableau à remplir dans votre modèle utilisateur :
protected $fillable = [ 'name', 'email', 'password', 'facebook_id', ];
Créer une nouvelle migration :
php artisan make:migration add_facebook_id_to_users_table
Dans le nouveau fichier de migration :
public function up() { Schema::table('users', function ($table) { $table->string('facebook_id')->nullable(); }); } public function down() { Schema::table('users', function ($table) { $table->dropColumn('facebook_id'); }); }
Exécuter la migration :
php artisan migrate
Dans votre vue de connexion, ajoutez un bouton « Se connecter avec Facebook » :
Login with Facebook
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3