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
- Visit Facebook Developers
- Create a new app
- Add "Facebook Login" as a product
- Set redirect URI:
http://localhost:8000/auth/facebook/callback
- 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.