"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo implementar \"Iniciar sesión con Facebook\" en Laravel

Cómo implementar \"Iniciar sesión con Facebook\" en Laravel

Publicado el 2024-10-31
Navegar:254

How to Implement \

Este tutorial lo guiará a través del proceso de agregar la funcionalidad de inicio de sesión de Facebook a su aplicación Laravel.

Requisitos previos

  • Configuración del proyecto Laravel
  • Compositor instalado
  • Cuenta de desarrollador de Facebook

Paso 1: crea una aplicación de Facebook

  1. Ir a Desarrolladores de Facebook
  2. Haga clic en "Mis aplicaciones" y luego en "Crear aplicación"
  3. Elija "Consumidor" como tipo de aplicación
  4. Completa los detalles de la aplicación y crea la aplicación
  5. En el panel de la aplicación, anota tu ID de aplicación y tu secreto de aplicación

Paso 2: Instalar Laravel Socialite

Laravel Socialite proporciona una interfaz expresiva y fluida para la autenticación OAuth con Facebook, Twitter, Google, LinkedIn, GitHub, GitLab y Bitbucket.
Instálalo a través de Composer:

composer require laravel/socialite

Paso 3: configurar la sociedad social

Agregue lo siguiente a su archivo config/services.php:

'facebook' => [
    'client_id' => env('FACEBOOK_CLIENT_ID'),
    'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
    'redirect' => env('FACEBOOK_REDIRECT_URI'),
],

Luego, agrégalos a tu archivo .env:

FACEBOOK_CLIENT_ID=your_facebook_app_id
FACEBOOK_CLIENT_SECRET=your_facebook_app_secret
FACEBOOK_REDIRECT_URI=http://localhost:8000/login/facebook/callback

Paso 4: configurar rutas

Agrega estas rutas a tu rutas/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']);

Paso 5: crear el controlador de Facebook

Crear un nuevo controlador:

php artisan make:controller Auth/FacebookController

Implementar el controlador:

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

Paso 6: actualizar el modelo de usuario

Agregue facebook_id a la matriz rellenable en su modelo de usuario:

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

Paso 7: agregar ID de Facebook a la tabla de usuarios

Crear una nueva migración:

php artisan make:migration add_facebook_id_to_users_table

En el nuevo archivo de migración:

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

Ejecutar la migración:

php artisan migrate

Paso 8: Agregar botón de inicio de sesión

En tu vista de inicio de sesión, agrega un botón "Iniciar sesión con Facebook":


    Login with Facebook

Declaración de liberación Este artículo se reproduce en: https://dev.to/johnmaths9/how-to-implement-login-with-facebook-in-laravel-2m5p?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3