cleaniquecoders/socialite-recall

Handle Socialite Redirect, Callback and Logout Easily

1.0.0 2025-08-03 04:46 UTC

This package is auto-updated.

Last update: 2025-08-03 04:49:29 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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.