PHPackages                             cid/laravel-keycloak-cid - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. cid/laravel-keycloak-cid

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

cid/laravel-keycloak-cid
========================

Laravel Keycloak SSO integration package for CID

v1.0.0(2mo ago)01MITPHPPHP ^7.4|^8.0

Since May 8Pushed 2mo agoCompare

[ Source](https://github.com/leandroleonelrocha/laravel-keycloak-cid)[ Packagist](https://packagist.org/packages/cid/laravel-keycloak-cid)[ RSS](/packages/cid-laravel-keycloak-cid/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

Laravel Keycloak CID
====================

[](#laravel-keycloak-cid)

Paquete de integración de Keycloak SSO para Laravel. Compatible con Laravel 5.8 y superior.

Instalación
-----------

[](#instalación)

### 1. Instalar el paquete

[](#1-instalar-el-paquete)

```
composer require cid/laravel-keycloak-cid
```

### 2. Publicar la configuración

[](#2-publicar-la-configuración)

```
php artisan vendor:publish --provider="CID\KeycloakSSO\KeycloakSSOServiceProvider" --tag="keycloak-config"
```

### 3. Configurar variables de entorno

[](#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

[](#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)

[](#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'))

        Cerrar sesión

@endif
```

Configuración personalizada
---------------------------

[](#configuración-personalizada)

### Modelo de Usuario personalizado

[](#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

[](#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
------------

[](#uso-avanzado)

### Acceder al servicio de Keycloak

[](#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

[](#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
----------------

[](#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
---------------

[](#troubleshooting)

### "Sorry, the page you are looking for could not be found."

[](#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"

[](#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

[](#tokens-no-se-guardan-en-sesión)

Asegurate de que tu aplicación tiene `SESSION_DRIVER` configurado (por defecto `file`):

```
SESSION_DRIVER=file
```

Licencia
--------

[](#licencia)

MIT

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance85

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

77d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/9503225?v=4)[leandroleonelrocha](/maintainers/leandroleonelrocha)[@leandroleonelrocha](https://github.com/leandroleonelrocha)

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/cid-laravel-keycloak-cid/health.svg)

```
[![Health](https://phpackages.com/badges/cid-laravel-keycloak-cid/health.svg)](https://phpackages.com/packages/cid-laravel-keycloak-cid)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.2k](/packages/craftcms-cms)[illuminate/http

The Illuminate Http package.

11937.9M7.5k](/packages/illuminate-http)[spatie/laravel-export

Create a static site bundle from a Laravel app

674146.0k6](/packages/spatie-laravel-export)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

293.1k](/packages/eslazarev-wildberries-sdk)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1235.9k21](/packages/fleetbase-core-api)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
