Skip to Content

SDK de PHP (auris/sdk)

auris/sdk v0.1.0

auris/sdk es la librería cliente PHP oficial para Auris IAM. Implementa el flujo OAuth2 Authorization Code con PKCE (S256) y proporciona una API limpia para recuperar información del usuario y gestionar tokens.

La librería no tiene dependencias externas — usa solo componentes internos de PHP (curl, session, hash, openssl) y funciona con PHP 7.4 en adelante.


Requisitos

  • PHP 7.4 o superior
  • Extensión curl habilitada
  • Extensión openssl habilitada (para PKCE)
  • Extensión session habilitada (para el SessionTokenStore predeterminado)

Instalación

composer require auris/sdk

Clases

AurisConfig

Contiene toda la configuración para el cliente de Auris.

use Auris\AurisConfig; $config = new AurisConfig( domain: 'auth.tudominio.com', clientId: 'app_xxxxx', redirectUri: 'https://tuapp.com/callback.php', clientSecret: null, scope: 'openid profile email', tenant: 'mi-tenant', tokenStore: null, );
ParámetroTipoRequeridoPredeterminadoDescripción
domainstringSí—Dominio del tenant de Auris, sin https://
clientIdstringSí—Client ID de la aplicación desde la Consola
redirectUristringSí—Debe coincidir exactamente con una URL de callback registrada
clientSecret?stringNonullSecreto de cliente para aplicaciones confidenciales del lado del servidor
scopestringNo'openid profile email'Scopes OAuth2 separados por espacios
tenantstringNo'default'Identificador del tenant
tokenStore?TokenStoreNonullBackend de almacenamiento personalizado. Por defecto usa SessionTokenStore.

AurisClient

La clase cliente principal.

use Auris\AurisClient; use Auris\AurisConfig; $config = new AurisConfig( domain: 'auth.tudominio.com', clientId: 'tu-client-id', redirectUri: 'https://tuapp.com/callback.php' ); $auris = new AurisClient($config);

Flujo de autenticación

Paso 1: Iniciar el login

// login.php session_start(); require_once 'vendor/autoload.php'; $auris = new \Auris\AurisClient(new \Auris\AurisConfig( domain: 'auth.tudominio.com', clientId: 'app_xxxxx', redirectUri: 'https://tuapp.com/callback.php' )); // Redirige al usuario a la página de login de Auris $auris->loginWithRedirect();

Paso 2: Gestionar el callback

// callback.php session_start(); require_once 'vendor/autoload.php'; $auris = new \Auris\AurisClient(/* config */); try { $result = $auris->handleRedirectCallback(); $user = $auris->getUser(); $_SESSION['user_id'] = $user->sub; $_SESSION['user_email'] = $user->email; header('Location: /dashboard.php'); } catch (\Auris\Exceptions\AuthException $e) { echo 'Error de autenticación: ' . $e->getMessage(); }

Paso 3: Proteger páginas

// dashboard.php session_start(); require_once 'vendor/autoload.php'; $auris = new \Auris\AurisClient(/* config */); if (!$auris->isAuthenticated()) { header('Location: /login.php'); exit; } $user = $auris->getUser(); echo "Bienvenido, " . htmlspecialchars($user->name);

Cerrar sesión

$auris->logout([ 'returnTo' => 'https://tuapp.com/login.php' ]);

Almacenamiento de tokens personalizado

Por defecto, los tokens se almacenan en la sesión PHP. Para almacenamiento personalizado (base de datos, Redis), implementa la interfaz TokenStore:

use Auris\Contracts\TokenStore; class RedisTokenStore implements TokenStore { public function get(string $key): ?string { return $this->redis->get("auris:{$key}"); } public function set(string $key, string $value, int $ttl): void { $this->redis->setex("auris:{$key}", $ttl, $value); } public function delete(string $key): void { $this->redis->del("auris:{$key}"); } } $config = new AurisConfig( domain: '...', clientId: '...', redirectUri: '...', tokenStore: new RedisTokenStore($redis) );

El SDK de PHP no admite Social Login, Magic Links ni SMS OTP directamente. Estas características dependen de la página de login alojada de Auris — el usuario las selecciona allí. El SDK de PHP solo gestiona el inicio y finalización del flujo PKCE.