Guía básica para desarrolladores y asistentes de IA sobre cómo usar las APIs de JevalID.
JevalID es el sistema de identidad centralizado del ecosistema Jeval (juegos, servicios web, paneles, etc.). La API de JevalID permite:
Esta documentación está pensada para:
La API de JevalID usa tokens de API tipo “Bearer” para autenticar peticiones. Un token es una cadena secreta asociada a un usuario de Jeval con rol developer_api o admin.
Los tokens se gestionan desde el Developer Dashboard en
/dashboard/developer.php. Cada token:
user_id en la tabla api_tokens).revoked = 1).
Actualmente los tokens son cadenas hexadecimales generadas con
random_bytes(32), por ejemplo:
e4a9b2c9e91a4bc789dcb3b49ffc2c30b8f5c7f2c5b3d6e2a7b232cbb4fa90c
El token se envía en la cabecera HTTP Authorization usando el esquema Bearer:
Authorization: Bearer <token>
Ejemplo con curl:
curl -X GET \
https://id.jeval.cl/api/userinfo.php \
-H "Authorization: Bearer <TU_TOKEN_AQUÍ>"
En la base de datos de JevalID, la tabla usuarios incluye un campo
rol con los siguientes valores:
Las APIs pueden usar este campo para tomar decisiones, por ejemplo: permitir o denegar acceso a ciertas rutas dependiendo del rol.
En esta versión inicial de la API de JevalID se consideran los siguientes endpoints principales. Es posible que en el futuro se añadan más rutas.
GET /api/userinfo.phpDescripción: devuelve información básica del usuario asociado al token.
Autenticación: requiere cabecera Authorization: Bearer <token>.
GET /api/userinfo.php HTTP/1.1
Host: id.jeval.cl
Authorization: Bearer <TOKEN_VALIDO>
{
"ok": true,
"user": {
"id": 42,
"primer_nombre": "Lautaro",
"correo": "lautaro@example.com",
"rol": "user"
}
}
Respuesta en caso de error (token inválido o revocado):
{
"ok": false,
"error": "Token inválido o revocado"
}
POST /api/tokens/create.phpDescripción: crea un nuevo token de API asociado al usuario autenticado en sesión (no confundir con el token que se usa para acceder a la API externa).
Autenticación: requiere sesión activa en JevalID y rol developer_api o admin.
Parámetros (POST):
name (string, requerido) — nombre descriptivo del token.POST /api/tokens/create.php HTTP/1.1
Host: id.jeval.cl
Content-Type: application/x-www-form-urlencoded
name=Mi%20primera%20aplicacion
{
"ok": true,
"token": "e4a9b2c9e91a4bc789dcb3b49ffc2c30b8f5c7f2c5b3d6e2a7b232cbb4fa90c"
}
Una vez recibido el token, el desarrollador debe guardarlo en un lugar seguro (no compartirlo públicamente ni subirlo a repositorios públicos).
const token = "<TU_TOKEN_AQUI>";
fetch("https://id.jeval.cl/api/userinfo.php", {
method: "GET",
headers: {
"Authorization": "Bearer " + token
}
})
.then(r => r.json())
.then(data => {
if (data.ok) {
console.log("Usuario de JevalID:", data.user);
} else {
console.error("Error:", data.error);
}
});
<?php
$token = "<TU_TOKEN_AQUI>";
$ch = curl_init("https://id.jeval.cl/api/userinfo.php");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . $token
],
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if (!empty($data["ok"])) {
// El usuario está autenticado correctamente
var_dump($data["user"]);
} else {
// Ocurrió un error (token inválido, etc.)
var_dump($data["error"] ?? "Error desconocido");
}
Cualquier lenguaje que pueda hacer peticiones HTTP puede usar estos endpoints: C#, Python, Go, C++, etc. Solo es necesario:
Authorization: Bearer <token>.ok y user.A continuación se listan ideas de uso para usuarios y desarrolladores. Los asistentes de IA pueden usar esta lista para proponer proyectos concretos.
Si eres un asistente de IA que está leyendo este archivo, tu objetivo al ayudar a un usuario debería ser:
Authorization: Bearer <token>.
/api/userinfo.php y otros endpoints futuros.
/api/games/owns_jumpfall,
/api/account/update_profile, etc.) respetando el modelo de roles descrito aquí.