API de JavaScript de Gatey para el inicio de sesión con Amazon Cognito

Gatey expone su interfaz pública en tiempo de ejecución bajo el objeto global de WP Suite:

  • globalThis.WpSuite.plugins.gatey (objeto del plugin)
  • globalThis.WpSuite.plugins.gatey.cognito (utilidades de Cognito y de sesión)

Todos los métodos auxiliares son asíncronos y devuelven una Promise, salvo que se indique lo contrario.


Utilidades de tiempo de ejecución (contrato compartido de WP Suite)

Los plugins de WP Suite comparten un pequeño contrato común de tiempo de ejecución (procedente de @smart-cloud/wpsuite-core).

Funciones de acceso auxiliares

Si incluye @smart-cloud/wpsuite-core en su paquete, también puede usar:

  • getWpSuite() → devuelve el objeto global WpSuite (o undefined)
  • getPlugin("gatey" | "...") → devuelve un objeto de plugin del registro

(Son envoltorios ligeros de globalThis.WpSuite.)

Estado del plugin

WpSuite.plugins.gatey.status puede tener uno de estos valores:

  • unavailable — el plugin no está presente o aún no se ha inicializado
  • initializing — se está iniciando
  • available — está listo para usarse
  • error — no se pudo inicializar

Esperar hasta que Gatey esté listo

Hay tres formas habituales de esperar:

1) onReady(cb)

globalThis.WpSuite?.plugins?.gatey?.onReady?.(() => {
console.log("Gatey is ready");
});

2) availability() (espera asíncrona con tiempo límite)

Devuelve available, unavailable o error (nunca devuelve initializing).

const res = await globalThis.WpSuite?.plugins?.gatey?.availability?.();
if (res !== "available") {
console.warn("Gatey not available:", res);
}

3) Envoltorios del núcleo de Gatey (waitForGateyReady)

Si su paquete incluye el paquete principal de Gatey, puede usar sus envoltorios prácticos:

  • getGateyPlugin()
  • waitForGateyReady(timeoutMs = 8000)

Son funciones auxiliares ligeras basadas en los eventos que aparecen a continuación.

Eventos de disponibilidad y error

Gatey emite eventos del DOM que puede escuchar:

  • wpsuite:gatey:ready
  • wpsuite:gatey:error
window.addEventListener("wpsuite:gatey:ready", () => console.log("ready"));
window.addEventListener("wpsuite:gatey:error", () => console.log("error"));

Métodos auxiliares de Cognito

Los siguientes métodos se encuentran en WpSuite.plugins.gatey.cognito.

MétodoDevuelveCaso de uso
getUsername()stringMostrar el nombre de usuario actual.
getUserAttributes()objectRellenar previamente un formulario con datos del perfil.
getMfaPreferences()objectMostrar el estado de MFA.
clearMfaPreferences()voidDesactivar TOTP con un clic.
isAuthenticated()booleanProteger una ruta o acción.
isInGroup("admin")booleanInterfaz basada en roles.
getGroups()string[]Representar una lista de insignias.
getRoles()string[]Selector de roles de IAM o interfaz basada en roles.
getScopes()string[]Botones basados en ámbitos.
getPreferredRole()stringSeleccionar un rol automáticamente.
setLanguage("en")voidCambiar el idioma de la interfaz del Authenticator.

Ejemplo: mostrar el usuario y sus roles

const gatey = globalThis.WpSuite?.plugins?.gatey;
const cognito = gatey?.cognito;

const ok = (await gatey?.availability?.()) === "available";
if (!ok) return;

console.log("User:", await cognito.getUsername());
console.log("Roles:", await cognito.getRoles());

Notas

  • Protege siempre las llamadas con encadenamiento opcional (?.) por si Gatey no está instalado en la página.
  • Si desarrolla un plugin o tema que depende de Gatey, es preferible usar availability() / onReady() / waitForGateyReady() en lugar de sondeos periódicos.