API JavaScript de Gatey pour la connexion Amazon Cognito

Gatey expose sa surface d'exécution publique sous le global WP Suite :

  • globalThis.WpSuite.plugins.gatey (objet du plugin)
  • globalThis.WpSuite.plugins.gatey.cognito (assistants Cognito/session)

Toutes les méthodes d'assistance sont asynchrones et renvoient une Promise, sauf indication contraire.


Assistants d'exécution (contrat WP Suite partagé)

Les extensions WP Suite partagent un petit contrat d'exécution commun (depuis @smart-cloud/wpsuite-core).

Accesseurs d'assistance

Si vous embarquez @smart-cloud/wpsuite-core, vous pouvez aussi utiliser :

  • getWpSuite() -> renvoie l'objet global WpSuite (ou undefined)
  • getPlugin("gatey" | "...") -> renvoie un objet de plugin depuis le registre

(Ce sont de fines enveloppes autour de globalThis.WpSuite.)

État du plugin

WpSuite.plugins.gatey.status peut prendre l'une des valeurs suivantes :

  • unavailable - plugin absent / pas encore initialisé
  • initializing - en cours de démarrage
  • available - prêt à l'emploi
  • error - échec de l'initialisation

Attendre que Gatey soit prêt

Il existe trois façons courantes d'attendre :

1) onReady(cb)

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

2) availability() (attente de disponibilité avec délai d'attente)

Renvoie available, unavailable ou error (elle ne renvoie jamais initializing).

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

3) Enveloppes du noyau Gatey (waitForGateyReady)

Si votre build inclut le package cœur Gatey, vous pouvez utiliser ses enveloppes de commodité :

  • getGateyPlugin()
  • waitForGateyReady(timeoutMs = 8000)

Ce sont de fins assistants au-dessus des événements ci-dessous.

Événements de disponibilité / erreur

Gatey émet des événements DOM que vous pouvez écouter :

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

Méthodes d'assistance Cognito

Les méthodes ci-dessous se trouvent sous WpSuite.plugins.gatey.cognito.

MéthodeRenvoieCas d'usage
getUsername()stringAfficher le nom d'utilisateur courant.
getUserAttributes()objectPréremplir un formulaire avec les données de profil.
getMfaPreferences()objectAfficher l'état du MFA.
clearMfaPreferences()voidDésactivation TOTP en un clic.
isAuthenticated()booleanProtéger une route ou une action.
isInGroup("admin")booleanInterface basée sur les rôles.
getGroups()string[]Afficher une liste de badges.
getRoles()string[]Sélecteur de rôle IAM / interface sensible aux rôles.
getScopes()string[]Boutons sensibles aux scopes.
getPreferredRole()stringSélection automatique d'un rôle.
setLanguage("en")voidChanger la langue de l'interface Authenticator.

Exemple : afficher l'utilisateur et les rôles

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());

Remarques

  • Protégez toujours les appels avec le chaînage optionnel (?.) au cas où Gatey ne serait pas installé sur la page.
  • Si vous écrivez un plugin ou un thème qui dépend de Gatey, préférez availability() / onReady() / waitForGateyReady() plutôt que l'interrogation en boucle.