"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment implémenter la « Connexion avec Facebook » dans Laravel

Comment implémenter la « Connexion avec Facebook » dans Laravel

Publié le 2024-10-31
Parcourir:858

How to Implement \

Ce didacticiel vous guidera tout au long du processus d'ajout de la fonctionnalité de connexion Facebook à votre application Laravel.

Conditions préalables

  • Projet Laravel mis en place
  • Compositeur installé
  • Compte de développeur Facebook

Étape 1 : Créer une application Facebook

  1. Accéder aux développeurs Facebook
  2. Cliquez sur "Mes applications" puis sur "Créer une application"
  3. Choisissez « Consommateur » comme type d'application
  4. Remplissez les détails de l'application et créez l'application
  5. Dans le tableau de bord de l'application, notez votre identifiant d'application et votre secret d'application

Étape 2 : Installer Laravel Socialite

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

Étape 3 : Configurer 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

Étape 4 : Configurer des itinéraires

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']);

Étape 5 : Créer un contrôleur Facebook

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());
        }
    }
}

Étape 6 : Mettre à jour le modèle utilisateur

Ajoutez facebook_id au tableau à remplir dans votre modèle utilisateur :

protected $fillable = [
    'name',
    'email',
    'password',
    'facebook_id',
];

Étape 7 : Ajouter un identifiant Facebook au tableau des utilisateurs

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

Étape 8 : Ajouter un bouton de connexion

Dans votre vue de connexion, ajoutez un bouton « Se connecter avec Facebook » :


    Login with Facebook

Déclaration de sortie Cet article est reproduit sur : https://dev.to/johnmaths9/how-to-implement-login-with-facebook-in-laravel-2m5p?1 En cas de violation, veuillez contacter [email protected] pour supprimer il
Dernier tutoriel Plus>

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