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 globalWpSuite(oundefined)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 inicializadoinitializing— se está iniciandoavailable— está listo para usarseerror— 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:readywpsuite: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étodo | Devuelve | Caso de uso |
|---|---|---|
getUsername() | string | Mostrar el nombre de usuario actual. |
getUserAttributes() | object | Rellenar previamente un formulario con datos del perfil. |
getMfaPreferences() | object | Mostrar el estado de MFA. |
clearMfaPreferences() | void | Desactivar TOTP con un clic. |
isAuthenticated() | boolean | Proteger una ruta o acción. |
isInGroup("admin") | boolean | Interfaz 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() | string | Seleccionar un rol automáticamente. |
setLanguage("en") | void | Cambiar 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.
