cleaniquecoders / socialite-recall
Handle Socialite Redirect, Callback and Logout Easily
Fund package maintenance!
Cleanique Coders
Requires
- php: ^8.3
- illuminate/contracts: ^10.0||^11.0||^12.0
- laravel/socialite: ^5.23
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9||^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^10.0.0||^9.0.0||^8.22.0
- pestphp/pest: ^2.0||^3.0
- pestphp/pest-plugin-arch: ^2.5||^3.0
- pestphp/pest-plugin-laravel: ^2.0||^3.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1||^2.0
- phpstan/phpstan-phpunit: ^1.3||^2.0
README
Handle Socialite Redirect, Callback and Logout Easily
Installation
You can install the package via composer:
composer require cleaniquecoders/socialite-recall
Then install the package:
php artisan socialite-recall:install
Update the providers list and redirect paths as needed:
'providers' => ['google', 'github', 'facebook'], 'redirect_after_login' => '/dashboard', 'redirect_after_logout' => '/',
Usage
Configure Your Socialite Providers
In your .env
file, add credentials for the providers you want to support:
GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret GOOGLE_REDIRECT_URI=${APP_URL}/auth/google/callback GITHUB_CLIENT_ID=your-github-client-id GITHUB_CLIENT_SECRET=your-github-client-secret GITHUB_REDIRECT_URI=${APP_URL}/auth/github/callback
And update config/services.php
accordingly:
'google' => [ 'client_id' => env('GOOGLE_CLIENT_ID'), 'client_secret' => env('GOOGLE_CLIENT_SECRET'), 'redirect' => env('GOOGLE_REDIRECT_URI'), ], 'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => env('GITHUB_REDIRECT_URI'), ],
Authentication Routes
Your app automatically gets these routes:
-
Redirect to provider:
GET /auth/{provider}/redirect
-
Callback from provider:
GET /auth/{provider}/callback
-
Logout user:
POST /auth/logout
Replace {provider}
with any enabled provider (e.g., google
, github
, facebook
).
Example Buttons in Blade
<!-- Google Login --> <a href="{{ route('socialite.redirect', ['provider' => 'google']) }}"> <button type="button">Login with Google</button> </a> <!-- GitHub Login --> <a href="{{ route('socialite.redirect', ['provider' => 'github']) }}"> <button type="button">Login with GitHub</button> </a> <!-- Logout --> <form action="{{ route('socialite.logout') }}" method="POST"> @csrf <button type="submit">Logout</button> </form>
After Login
-
The package will:
- Handle Socialite redirect and callback flow.
- Create or update a user record (based on provider + provider ID).
- Automatically log the user in.
-
After login, the user will be redirected to the path set in:
'redirect_after_login' => '/dashboard',
⚡ That’s it! You now have one unified login system for all Socialite providers without repeating redirect/callback logic.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.