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)