SDK de PHP (auris/sdk)
auris/sdk v0.1.0auris/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
curlhabilitada - Extensión
opensslhabilitada (para PKCE) - Extensión
sessionhabilitada (para elSessionTokenStorepredeterminado)
Instalación
composer require auris/sdkClases
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ámetro | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
domain | string | Sí | — | Dominio del tenant de Auris, sin https:// |
clientId | string | Sí | — | Client ID de la aplicación desde la Consola |
redirectUri | string | Sí | — | Debe coincidir exactamente con una URL de callback registrada |
clientSecret | ?string | No | null | Secreto de cliente para aplicaciones confidenciales del lado del servidor |
scope | string | No | 'openid profile email' | Scopes OAuth2 separados por espacios |
tenant | string | No | 'default' | Identificador del tenant |
tokenStore | ?TokenStore | No | null | Backend 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.