I’m excited to share my latest open‑source package: Socialite ReCall 🎉
If you’ve ever found yourself duplicating redirect and callback logic for multiple Socialite providers (Google, GitHub, Facebook, etc.), this package is built for you.
✨ What Socialite ReCall Does
- Handles redirects, callbacks, and logouts for any Socialite provider.
- Keeps your controllers clean — no more boilerplate OAuth logic.
- Easy to configure, provider‑agnostic, and ready for quick integration.
🚀 Usage
1. Install & Configure
composer require cleaniquecoders/socialite-recall
php artisan socialite-recall:install
This will publish a config file:
config/socialite-recall.php
Update it to match your needs:
return [
'providers' => ['google', 'github', 'facebook'],
'redirect_after_login' => '/dashboard',
'redirect_after_logout' => '/',
];
2. Setup Socialite Providers
In your .env
file:
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
In config/services.php
:
'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'),
],
3. Use the Built‑In Routes
Your app automatically gets:
Route | Purpose |
---|---|
GET /auth/{provider}/redirect |
Redirect to the provider |
GET /auth/{provider}/callback |
Handle provider callback |
POST /auth/logout |
Logout the current user |
Replace {provider}
with any in your config (google
, github
, facebook
, etc.).
4. Example Blade Buttons
<!-- 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>
5. After Login
- Redirect + callback handled automatically.
- User record created or updated (
provider
+provider_id
). - User logged in automatically.
- Redirected to:
'redirect_after_login' => '/dashboard',
⚡ Done! You now have a unified Socialite login flow with minimal setup.
Top comments (0)