2017 © Pedro Peláez
 

library jwt-session

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

image

siu-toba/jwt-session

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

  • Friday, August 4, 2017
  • by andresote
  • Repository
  • 3 Watchers
  • 0 Stars
  • 54 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

jwt-session

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

Requiere actualmente la librería siu-toba/jwt-util para manipular los tokens y siu-toba/rest para generar la autenticación vía REST., (*2)

Instalación

Usar composer para manejar las dependencias y descargar jwt-util:, (*3)

composer require siu-toba/jwt-session

Además, en un proyecto standalone, instalar y configurar siu-toba/rest. En un proyecto hecho con SIU-Toba, ya está integrada., (*4)

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/<proyecto>_contexto_ejecucion.php el siguiente método:, (*5)

``` php 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);, (*6)

    // 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());

}, (*7)


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. * 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 de PHP., (*8)

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., (*9)

Como utilizar

Una vez integrada y configurado los parámetros, para generar tokens JWT es necesario consumir el recurso REST que estará disponible en http://url-aplicacion/rest/session y que aceptará un usuario y clave mediante POST., (*10)

The Versions

04/08 2017

dev-master

9999999-dev http://www.siu.edu.ar

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

  Sources   Download

SIU

The Requires

 

by Sistema de Información Universitaria - SIU

04/08 2017

v1.0.1

1.0.1.0 http://www.siu.edu.ar

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

  Sources   Download

SIU

The Requires

 

by Sistema de Información Universitaria - SIU

16/03 2017

v1.0.0

1.0.0.0 http://www.siu.edu.ar

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

  Sources   Download

SIU

The Requires

 

by Sistema de Información Universitaria - SIU