itcolima / siitec-api-client
PHP ITColima SIITEC API Client
Requires
- francerz/http: ^0.3
- francerz/json-tools: ^0.1.0
- francerz/oauth2-client: ^0.3
- itcolima/siitec-api-core: ^0.1
- psr/http-client: ^1.0
Requires (Dev)
- phpunit/phpunit: ^8.5
- dev-master
- v0.1.86
- v0.1.85
- v0.1.84
- v0.1.83
- v0.1.82
- v0.1.81
- v0.1.80
- v0.1.79
- v0.1.78
- v0.1.77
- v0.1.76
- v0.1.75
- v0.1.74
- v0.1.73
- v0.1.72
- v0.1.71
- v0.1.70
- v0.1.69
- v0.1.68
- v0.1.67
- v0.1.66
- v0.1.65
- v0.1.64
- v0.1.63
- v0.1.62
- v0.1.61
- v0.1.61-rc3
- v0.1.61-rc2
- v0.1.61-rc1
- v0.1.60
- v0.1.59
- v0.1.58
- v0.1.57
- v0.1.56
- v0.1.55
- v0.1.54
- v0.1.53
- v0.1.52
- v0.1.51
- v0.1.50
- v0.1.49
- v0.1.48
- v0.1.47
- v0.1.46
- v0.1.45
- v0.1.44
- v0.1.43
- v0.1.42
- v0.1.41
- v0.1.40
- v0.1.39
- v0.1.38
- v0.1.37
- v0.1.36
- v0.1.35
- v0.1.34
- v0.1.33
- v0.1.32
- v0.1.31
- v0.1.30
- v0.1.29
- v0.1.28
- v0.1.27
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1
- dev-oauth2_v0.3.0
This package is auto-updated.
Last update: 2024-11-21 17:30:23 UTC
README
Instalación
La instalación del paquete se puede hacer mediante composer utilizando el siguiente comando:
composer require itcolima/siitec-api-client
Inicialización
La forma de inicializar la API de SIITEC es mediante la clase
ITColima\SiitecApi\SiitecApi
.
use ITColima\SiitecApi\SiitecApi; // Carga manual de las variables de entorno putenv('SIITEC_API_CLIENT_ID', '<client_id>'); putenv('SIITEC_API_CLIENT_SECRET', '<client_secret>'); $siitecApi = new SiitecApi();
CARGA AUTOMÁTICA DE LAS VARIABLES DE ENTORNO
La API de SIITEC puede cargar automáticamente las variables de entorno si se utiliza un framework o librería que las cargue desde un archivo
.env
. En el archivo deberían incluirse de la siguiente manera:# =================================== # SIITEC API SETTINGS # =================================== SIITEC_API_CLIENT_ID = '<client_id>' SIITEC_API_CLIENT_SECRET = '<client_secret>'
NOTA
Los valores de los parámetros
<client_id>
y<client_secret>
son proporcionados por el Departamento de Centro de Cómputo del Instituto Tecnológico de Colima.
Inicio de sesión
Una de las funcionalidades especiales de la libería API de SIITEC es permitir acceso a recursos propios de cada usuario, identificándolo mediante su inicio de sesión.
El inicio de sesión en la API de SIITEC se realiza utilizando el Framework de Autorización OAuth 2.0, el cual permite obtener acceso a recursos protegidos utilizando claves temporales de acceso, llamadas Access Token, y permitiendo una operación continua.
Estos procesos de inicio de sesión requieren de una compleja red de interacciones e intercambio de peticiones HTTP entre el Cliente (aplicación) y el servidor de SIITEC. Ese complejo mecanismo se simplifica utilizando funciones de la librería, que permiten centrarse menos en la estructura y más en la funcionalidad.
Implementación de las funciones de inicio de sesión
use ITColima\SiitecApi\SiitecApi; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; class OAuth2Controller { /** * Recibe la solicitud del cliente para iniciar proceso de inicio de sesión. * * Ruta: GET /oauth2[/] */ public function indexGet(): ResponseInterface { $siitecApi = new SiitecApi(); if ($api->isLoggedIn()) { return SiitecApi::redirectTo(SiitecApi::siteUrl()); } $response = $siitecApi->login( SiitecApi::siteUrl('/oauth2/login_handler'), SiitecApi::siteUrl('/oauth2/logout') ); return $response; } /** * Recibe la respuesta del servidor de autorización con el código de * autorización o error, según corresponda el caso. * * Ruta: GET /oauth2/callback[/] */ public function callbackGet(ServerRequestInterface $request): ResponseInterface { $siitecApi = new SiitecApi(); $redirUri = $siitecApi->handleLogin($request); return SiitecApi::redirectTo($redirUri); } /** * Destruye la sesión y hace la solicitud para cancelar la sesión activa del * usuario en SIITEC. * * Ruta: GET /logout[/] */ public function logoutGet(ServerRequestInterface $request): ResponseInterface { $siitecApi = new SiitecApi(); $response = $siitecApi->handleLogout($request); session_destroy(); return SiitecApi::emitResponse($response); } }
NOTA
La implementación puede variar dependiendo del framework y técnica para el desarrollo que se esté utilizando.
DEPURACIÓN
De manera predeterminada la API tiene asociadas direcciones de inicialización, mismas que pueden modificarse para depuración y ejecución con entornos locales.
# ===================================== # SIITEC API DEBUGGING # ===================================== SIITEC_HOME = 'https://siitec.colima.tecnm.mx' SIITEC_API = 'https://siitec.colima.tecnm.mx/api/index.php'
VARIABLES DE ENTORNO ESPECÍFICAS
Alternativamente puede utilizar variables de entorno específicas para los mecanismo de autenticación, aunque esto se recomienda para depuraciones específicas, y no conviene utilizarse de manera generalizada.
# ===================================== # SIITEC API DEBUGGING # ===================================== SIITEC_API_AUTHORIZE_ENDPOINT = 'https://siitec.colima.tecnm.mx/index.php/oauth2/authorize' SIITEC_API_TOKEN_ENDPOINT = 'https://siitec.colima.tecnm.mx/index.php/oauth2/token' SIITEC_API_RESOURCES_ENDPOINT = 'https://siitec.colima.tecnm.mx/api/index.php'