Inicio de sesión
Toda la interacción con la API de XGate está protegida y requiere autenticación. El primer paso para cualquier integración es obtener su token de acceso.
Este endpoint le permite intercambiar su email y password por un token de portador (en formato JWT). Este token debe enviarse en todas las solicitudes futuras en el encabezado Authorization.
El token generado es válido durante 15 días. Después de este período, deberá generar un nuevo token utilizando la misma ruta.
Endpoint
- Método: POST
https://api.xgateglobal.com/auth/token
Prueba de integración
Utilice el formulario a continuación para generar un token válido directamente desde su navegador.
Probar: Autenticación
Solicitud
Envíe un objeto JSON en el body de la solicitud con las siguientes propiedades:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
email | String | Sí | Su correo electrónico de acceso a la plataforma. |
password | String | Sí | Su contraseña de acceso. |
Ejemplo de cuerpo (JSON)
{
"email": "email@company.com",
"password": "Your.Password"
}
Respuestas
Éxito (200 OK)
En caso de éxito, la API devolverá un objeto JSON que contiene su token de acceso:
{
"token": "eyJhbGciOiJIUzI1NiIsIn6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibm******************************"
}
Errores comunes
| Estado | Mensaje | Posible motivo |
|---|---|---|
| 401 | No autorizado | • Correo electrónico o contraseña incorrectos. |
| 500 | Error interno del servidor | Error interno del servidor. Contacte con soporte. |
Cómo usar
Después de recibir el token, debe almacenarlo de forma segura y enviarlo en todas las solicitudes posteriores a las rutas protegidas.
El token debe enviarse en el encabezado Authorization utilizando el prefijo Bearer (seguido de un espacio).
Ejemplo de encabezado
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Content-Type: application/json
El token vence en 15 días. Si comienza a recibir errores 401 Unauthorized en sus solicitudes (incluso con el token), es probable que haya expirado. Simplemente inicie sesión nuevamente para generar un nuevo token.
Integración
- Node.js
- Python
- PHP
El ejemplo de integración utiliza la librería Axios en Node.js.
Instalando Axios:
npm install axios
Ejemplo en JavaScript:
const axios = require("axios");
const apiUrl = "https://api.xgateglobal.com";
const credentials = {
email: "your_email@domain.com",
password: "**********"
};
(async () => {
try {
const response = await axios.post(`${apiUrl}/auth/token`, credentials);
console.log(response.data);
} catch (error) {
if (error.response && error.response.data) {
console.error(error.response.data.message || "Ocurrió un error");
} else {
console.error(error.message);
}
}
})();
El ejemplo de integración utiliza la librería requests.
Instalando requests:
pip install requests
Ejemplo en Python:
import requests
api_url = "https://api.xgateglobal.com"
credentials = {
"email": "your_email@domain.com",
"password": "**********"
}
try:
response = requests.post(f"{api_url}/auth/token", json=credentials)
response.raise_for_status() # Genera una excepción para errores 4xx/5xx
print(response.json())
except requests.exceptions.RequestException as error:
if error.response is not None:
# Mostrar el mensaje de error en la respuesta de la API
print(error.response.json().get("message", "Ocurrió un error"))
else:
# Manejar errores de conexión
print(f"Error de conexión: {error}")
Ejemplo de obtención del token utilizando cURL nativo de PHP.
$apiUrl = "https://api.xgateglobal.com";
$credentials = [
"email" => "your_email@domain.com",
"password" => "**********"
];
$payload = json_encode($credentials);
// Inicializar cURL para el endpoint específico
$ch = curl_init($apiUrl . "/auth/token");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode >= 200 && $httpCode < 300) {
echo $response;
} else {
$errorResponse = json_decode($response, true);
// Verificar si la clave 'message' existe en la respuesta de error
if (isset($errorResponse["message"])) {
echo $errorResponse["message"];
} else {
echo "Ocurrió un error. Estado HTTP: " . $httpCode;
}
}