Appearance
Multiple SSO Clients
Configure multiple clients
In config/sso-client.php:
php
'default' => env('SSO_CLIENT_NAME', 'default'),
'clients' => [
'default' => [
'client_name' => env('AUTH_CLIENT_NAME'),
'client_id' => env('AUTH_CLIENT_ID'),
'client_secret' => env('AUTH_CLIENT_SECRET'),
'api_token' => env('AUTH_API_TOKEN'),
'base_uri' => env('AUTH_BASE_URI', 'https://api.sso.carro.co'),
'default_scopes' => env('AUTH_DEFAULT_SCOPES', ''),
'callback_uri' => env('AUTH_CALLBACK_URI', 'https://example.com/auth/callback'),
'encryption_secret' => env('ENCRYPTION_SECRET'),
'enable_internal_auth_check' => env('SSO_ENABLE_INTERNAL_AUTH_CHECK', false),
'passport' => [
'public_key' => env('SSO_PASSPORT_PUBLIC_KEY'),
],
'related_frontend_url' => env('AUTH_RELATED_FRONTEND_URL'),
],
'other_client' => [
'client_name' => env('OTHER_CLIENT_NAME'),
'client_id' => env('OTHER_CLIENT_ID'),
'client_secret' => env('OTHER_CLIENT_SECRET'),
'api_token' => env('OTHER_API_TOKEN'),
'base_uri' => env('OTHER_BASE_URI'),
],
],Associate clients with guards
In config/auth.php:
php
'guards' => [
'carro' => [
'driver' => 'carro',
'provider' => 'users',
'sso-client' => 'default'
],
'carro-other-client' => [
'driver' => 'carro',
'provider' => 'users',
'sso-client' => 'other_client'
],
],switch-sso-client middleware
php
Route::middleware(['switch-sso-client:other_client'])
->group(function () {
// Routes using other_client configuration
});
Route::middleware(['auth:carro', 'switch-sso-client:other_client'])
->group(function () {
// ...
});