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

王林
Libérer: 2024-08-16 06:54:42
original
705 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. Allez 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 remplissable 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écuter 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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!