How to Add Facebook Login in Laravel 12

This guide shows you how to integrate Facebook login into a Laravel 12 app using Laravel Socialite, giving your users a convenient and secure login option.

Step 1: Create a Facebook App

  1. Visit Facebook Developers
  2. Create a new app
  3. Add "Facebook Login" as a product
  4. Set redirect URI: http://localhost:8000/auth/facebook/callback
  5. Copy your App ID and Secret

Step 2: Add to .env

FACEBOOK_CLIENT_ID=your_app_id
FACEBOOK_CLIENT_SECRET=your_app_secret
FACEBOOK_REDIRECT_URI=http://localhost:8000/auth/facebook/callback

Step 3: Update config/services.php

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

Step 4: Add Routes

Route::get('auth/facebook', [FacebookController::class, 'redirectToFacebook']);
Route::get('auth/facebook/callback', [FacebookController::class, 'handleFacebookCallback']);

Step 5: Create FacebookController

php artisan make:controller FacebookController

Step 6: Facebook Login Logic

public function handleFacebookCallback()
{
    if (request()->has('error') || !request()->has('code')) {
        return redirect('/login')->with('error', 'Facebook login cancelled.');
    }

    $facebookUser = Socialite::driver('facebook')->stateless()->user();

    $user = User::updateOrCreate(
        ['email' => $facebookUser->getEmail()],
        [
            'name' => $facebookUser->getName(),
            'facebook_id' => $facebookUser->getId(),
            'avatar' => $facebookUser->getAvatar(),
            'password' => bcrypt(Str::random(16)),
        ]
    );

    Auth::login($user);
    return redirect('/home');
}

Step 7: Add facebook_id Column (Optional)

php artisan make:migration add_facebook_id_to_users_table
$table->string('facebook_id')->nullable();
php artisan migrate

Step 8: Facebook Login Button

<a href="{{ url('auth/facebook') }}">
    <button style="background-color: #3b5998; color: white;">Login with Facebook</button>
</a>

Conclusion

You’ve successfully added Facebook login to your Laravel app. With Laravel Socialite, adding social authentication is easy and secure.

apione.in

Comments

Leave a Reply