auth middleware for protected routes)./sso/login vs. /auth/login).sso.php) aligns with Laravel’s convention for external packages.users table extension (e.g., sso_provider, sso_token), but no migration examples or rollback support.sso.php) is not encrypted by default (risk in shared environments).SSOController handles most logic)./sso/* paths may overlap with existing auth routes (e.g., /login).auth middleware; may not integrate with custom auth systems.scopes and redirect_uri for flexibility.users table for SSO fields (e.g., sso_provider, sso_uid).composer require rizalrepo/sso-client.php artisan vendor:publish --tag=sso-config.config/sso.php with IdP credentials (use .env for secrets).scopes (e.g., openid, profile, email, roles).web.php (consider namespacing to avoid conflicts).Route::prefix('auth')->controller(\Rizalrepo\SSOClient\SSOController::class)->group(function () {
Route::get('/sso/login', 'getLogin');
Route::get('/sso/callback', 'getCallback');
});
auth for /sso/logout).sso guard to config/auth.php:
'guards' => [
'web' => ['driver' => 'session', 'provider' => 'sso'],
],
'providers' => [
'sso' => ['driver' => 'sso', 'model' => User::class],
],
composer.json for supported Laravel versions (assume 8.x+ based on syntax).php >= 8.0 compatibility (critical for type safety).openid scope).sub vs. email as unique identifier).sso.php secrets (use Laravel Encryption).sso.php).SSOController may be hard to replace.How can I help you explore Laravel packages today?