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

王林
Libérer: 2024-08-16 06:54:42
original
843 Les gens l'ont consulté

How to Implement

Ce tutoriel 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. Aller sur les 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
Copier après la connexion

É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'),
],
Copier après la connexion

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
Copier après la connexion

Étape 4 : Configurer des itinéraires

Ajoutez ces itinéraires à 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']);
Copier après la connexion

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

Créez un nouveau contrôleur :

php artisan make:controller Auth/FacebookController
Copier après la connexion

Implémenter le contrôleur :

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Laravel\Socialite\Facades\Socialite;

class FacebookController extends Controller
{
    public function redirectToFacebook()
    {
        return Socialite::driver('facebook')->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());
        }
    }
}
Copier après la connexion

É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',
];
Copier après la connexion

É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
Copier après la connexion

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');
    });
}
Copier après la connexion

Exécutez la migration :

php artisan migrate
Copier après la connexion

Étape 8 : Ajouter un bouton de connexion

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

<a href="{{ route('login.facebook') }}" class="btn btn-primary">
    Login with Facebook
</a>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal