"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como implementar “Login com Facebook” no Laravel

Como implementar “Login com Facebook” no Laravel

Publicado em 31/10/2024
Navegar:952

How to Implement \

Este tutorial irá guiá-lo através do processo de adição da funcionalidade de login do Facebook ao seu aplicativo Laravel.

Pré-requisitos

  • Configuração do projeto Laravel
  • Compositor instalado
  • Conta de desenvolvedor do Facebook

Etapa 1: crie um aplicativo do Facebook

  1. Vá para Desenvolvedores do Facebook
  2. Clique em "Meus aplicativos" e depois em "Criar aplicativo"
  3. Escolha "Consumidor" como tipo de aplicativo
  4. Preencha os detalhes do aplicativo e crie o aplicativo
  5. No painel do aplicativo, anote seu ID e segredo do aplicativo

Passo 2: Instale o Laravel Socialite

Laravel Socialite fornece uma interface expressiva e fluente para autenticação OAuth com Facebook, Twitter, Google, LinkedIn, GitHub, GitLab e Bitbucket.
Instale-o via Composer:

composer require laravel/socialite

Passo 3: Configurar Socialite

Adicione o seguinte ao seu arquivo config/services.php:

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

Em seguida, adicione-os ao seu arquivo .env:

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

Etapa 4: configurar rotas

Adicione estas rotas ao seu 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']);

Etapa 5: Crie o FacebookController

Crie um novo controlador:

php artisan make:controller Auth/FacebookController

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

Etapa 6: atualizar o modelo do usuário

Adicione facebook_id ao array preenchível em seu modelo de usuário:

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

Etapa 7: adicionar ID do Facebook à tabela de usuários

Crie uma nova migração:

php artisan make:migration add_facebook_id_to_users_table

No novo arquivo de migração:

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

Execute a migração:

php artisan migrate

Etapa 8: adicionar botão de login

Na sua visualização de login, adicione um botão "Login com Facebook":


    Login with Facebook

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/johnmaths9/how-to-implement-login-with-facebook-in-laravel-2m5p?1 Se houver alguma violação, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3