承接 cid/laravel-keycloak-cid 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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 autenticar
  • GET /login/keycloak/callback - Maneja la respuesta de Keycloak
  • GET /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 usuario
  • name → nombre del usuario
  • preferred_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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-05-08

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固