PHPackages                             siu-toba/jwt-session - 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. siu-toba/jwt-session

ActiveLibrary

siu-toba/jwt-session
====================

Una pequeña librería que genera Web Tokens JSON (JWT)

v2.0.0(2mo ago)11073[1 issues](https://github.com/SIU-Toba/jwt-session/issues)PHPPHP &gt;=8.1.0

Since Mar 15Pushed 2mo ago3 watchersCompare

[ Source](https://github.com/SIU-Toba/jwt-session)[ Packagist](https://packagist.org/packages/siu-toba/jwt-session)[ Docs](http://www.siu.edu.ar)[ RSS](/packages/siu-toba-jwt-session/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (4)Dependencies (2)Versions (5)Used By (0)

jwt-session
===========

[](#jwt-session)

Esta librería permite autenticar usuarios vía servicios web REST y generar tokens tipo JWT (). Permite generar y validar los tokens, utilizando para ello claves simétricas y/o asimétricas.

Requiere actualmente la librería [siu-toba/jwt-util](https://github.com/SIU-Toba/jwt-util) para manipular los tokens y [siu-toba/rest](https://github.com/SIU-Toba/rest) para generar la autenticación vía REST.

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

[](#instalación)

Usar composer para manejar las dependencias y descargar jwt-util:

```
composer require siu-toba/jwt-session
```

Además, en un proyecto standalone, instalar y configurar [siu-toba/rest](https://github.com/SIU-Toba/rest). En un proyecto hecho con SIU-Toba, ya está integrada.

Integración en una aplicación hecha con SIU-Toba
------------------------------------------------

[](#integración-en-una-aplicación-hecha-con-siu-toba)

Para un proyecto hecho con el framework SIU-Toba, agregar en la clase `php/extension_toba/_contexto_ejecucion.php` el siguiente método:

```
function conf__rest(SIUToba\rest\rest $rest)
{
        // obtener el toba_modelo_proyecto
        $catalogo = toba_modelo_catalogo::instanciacion();
        $id_instancia = toba::instancia()->get_id();
        $id_proyecto = toba::proyecto()->get_id();
        $modelo_proyecto = $catalogo->get_proyecto($id_instancia, $id_proyecto);

        // leer la config de JWT, desde servidor.ini
        $ini = toba_modelo_rest::get_ini_server($modelo_proyecto);

        $settings = [
            'tipo' => $ini->get('jwt', 'tipo', null, true),
            'algoritmo' => $ini->get('jwt', 'algoritmo', null, true),
            'usuario_id' => $ini->get('jwt', 'usuario_id', null, true),
            'key_encoder' => $ini->get('jwt', 'key_encoder', null, true)
            'exp' => $ini->get('jwt', 'expiracion', null, true)
        ];

        // obtener una instancia del generador de sesiones JWT
        $session = SIU\JWT\Session::getInstance();

        // configurar la librería para generar tokens JWT
        $session->setConfigJWT($settings);

        // configurar un callback para validar el usuario/clave
        $session->setCallbackAutenticador(array(new toba_autenticacion_basica(), 'autenticar'));

        // decir a toba donde encontrar el recurso REST /session de la librería
        $rest->add_path_controlador(SIU\JWT\Session::getPathControlador());
}
```

Una vez configurada la librería en el contexto de ejecución, resta configurar los parámetros del servicio REST (vía el archivo `servidor.ini`). Este deberá tener una estructura similar a:

```
[jwt]
tipo=simetrico
algoritmo=HS512
usuario_id=uid
key_encoder=test
key_decoder=test
expiracion=+1 Day

```

Valores posibles para los atributos

- `tipo` indica si se desea aplicar una encriptación simétrica o no. Posibles valores: `simetrico`, `asimetrico`.
- `algoritmo` indica el algoritmo de encriptación utilizado. Para mayor detalle de configuración sobre algoritmos de encriptación soportados, ver opciones disponibles en [siu-toba/jwt-util](https://github.com/SIU-Toba/jwt-util).
- `usuario_id` especifica como se llamará el campo en el cual se guarda el usuario, para recuperar luego.
- `key_encoder` especifica la clave para encriptación del token. Si el tipo es `asimetrico`, se trata de la ruta a una clave privada.
- `key_decoder` especifica la clave para desencriptación del token. Si el tipo es `asimetrico`, se trata de la ruta a una clave pública.
- `expiracion` define en cuanto tiempo expira el token generado. El formato es el que soporta la función [strtotime](http://php.net/manual/en/datetime.formats.php) de PHP.

Se pueden adicionar atributos extra en el método `setConfigJWT`, de acuerdo a lo que esté soportado en conjunto con la librería [siu-toba/jwt-util](https://github.com/SIU-Toba/jwt-util).

Como utilizar
-------------

[](#como-utilizar)

Una vez integrada y configurado los parámetros, para generar tokens JWT es necesario consumir el recurso REST que estará disponible en y que aceptará un `usuario` y `clave` mediante POST.

###  Health Score

45

—

FairBetter than 92% of packages

Maintenance66

Regular maintenance activity

Popularity13

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 68.4% of commits — single point of failure

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

Every ~1091 days

Total

4

Last Release

68d ago

Major Versions

v1.0.2 → v2.0.02026-03-03

PHP version history (3 changes)v1.0.0PHP &gt;=5.6.0

v1.0.2PHP &gt;=7.1.0

v2.0.0PHP &gt;=8.1.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/113a580f9c74020bd76fae1460f3547da2ce97081ca9857dcc0588bd151b1904?d=identicon)[siutoba](/maintainers/siutoba)

---

Top Contributors

[![sergiovier](https://avatars.githubusercontent.com/u/286618?v=4)](https://github.com/sergiovier "sergiovier (13 commits)")[![enfoqueNativo](https://avatars.githubusercontent.com/u/12297079?v=4)](https://github.com/enfoqueNativo "enfoqueNativo (6 commits)")

### Embed Badge

![Health badge](/badges/siu-toba-jwt-session/health.svg)

```
[![Health](https://phpackages.com/badges/siu-toba-jwt-session/health.svg)](https://phpackages.com/packages/siu-toba-jwt-session)
```

###  Alternatives

[siu-toba/framework

Framework de desarrollo web

2269.4k1](/packages/siu-toba-framework)

PHPackages © 2026

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