cid/laravel-keycloak-cid
最新稳定版本:v1.0.0
Composer 安装命令:
composer require cid/laravel-keycloak-cid
包简介
Laravel Keycloak SSO integration package for CID
README 文档
README
Paquete de integración de Keycloak SSO para Laravel. Compatible con Laravel 5.8 y superior.
Instalación
1. Instalar el paquete
composer require cid/laravel-keycloak-cid
2. Publicar la configuración
php artisan vendor:publish --provider="CID\KeycloakSSO\KeycloakSSOServiceProvider" --tag="keycloak-config"
3. Configurar variables de entorno
Agregá las siguientes variables a tu archivo .env:
KEYCLOAK_BASE_URL=https://tu-keycloak-server.com KEYCLOAK_REALM=tu-realm KEYCLOAK_CLIENT_ID=tu-client-id KEYCLOAK_CLIENT_SECRET=tu-client-secret KEYCLOAK_REDIRECT_URI=http://localhost:8888/tu-app/public/login/keycloak/callback
4. Usar las rutas
El paquete registra automáticamente las siguientes rutas:
GET /login- Redirige a Keycloak para autenticarGET /login/keycloak/callback- Maneja la respuesta de KeycloakGET /logout/keycloak- Cierra sesión en Keycloak y la aplicación
5. Actualizar vistas (opcional)
Si querés usar el botón de logout, actualizá tu vista para usar la ruta correcta:
@if(env('SSO_AUTH')) <a href="{{ route('logout.keycloak') }}"> Cerrar sesión </a> @endif
Configuración personalizada
Modelo de Usuario personalizado
Por defecto, usa App\User. Si usás otro modelo, configuralo en tu config/auth.php:
'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\CustomUser::class, ], ],
Datos de usuario
El paquete mapea automáticamente los siguientes campos de Keycloak al usuario:
email→ email del usuarioname→ nombre del usuariopreferred_username→ username (opcional)
Podés personalizar el mapeo extendiendo el KeycloakController.
Uso avanzado
Acceder al servicio de Keycloak
use CID\KeycloakSSO\Services\KeycloakService; class MyController extends Controller { public function someMethod(KeycloakService $keycloak) { $userInfo = $keycloak->getUserInfo($token); } }
Métodos disponibles del servicio
// Obtener URL de autenticación $authUrl = $keycloak->getAuthorizationUrl(); // Obtener token de acceso $token = $keycloak->getAccessToken($code); // Obtener información del usuario $userInfo = $keycloak->getUserInfo($accessToken); // Obtener URL de logout $logoutUrl = $keycloak->getLogoutUrl($redirectUri); // Verificar estado $keycloak->verifyState($state); // Limpiar estado $keycloak->clearState();
Tokens en sesión
El paquete almacena los tokens en sesión:
// Acceder al token de acceso $token = session('keycloak_token'); // Acceder al refresh token $refreshToken = session('keycloak_refresh_token');
Troubleshooting
"Sorry, the page you are looking for could not be found."
Asegurate de que APP_URL en .env sea correcto:
APP_URL=http://localhost:8888/tu-app
"Invalid session state"
Verifica que tu servidor esté permitiendo cookies de sesión y que la configuración de sesión en config/session.php sea correcta.
Tokens no se guardan en sesión
Asegurate de que tu aplicación tiene SESSION_DRIVER configurado (por defecto file):
SESSION_DRIVER=file
Licencia
MIT
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-05-08