Gatey-JavaScript-API für die Amazon-Cognito-Anmeldung
Gatey stellt seine öffentliche Laufzeitschnittstelle über das globale WP-Suite-Objekt bereit:
globalThis.WpSuite.plugins.gatey(Plugin-Objekt)globalThis.WpSuite.plugins.gatey.cognito(Cognito-/Sitzungs-Helfer)
Alle Helfer sind asynchron und geben – sofern nicht anders angegeben – ein Promise zurück.
Laufzeit-Helfer (gemeinsamer WP Suite-Vertrag)
WP-Suite-Plugins verwenden einen kleinen gemeinsamen Laufzeitvertrag aus @smart-cloud/wpsuite-core.
Zugriffsfunktionen
Wenn Sie @smart-cloud/wpsuite-core paketieren, können Sie zusätzlich verwenden:
getWpSuite()→ gibt das globaleWpSuite-Objekt zurück (oderundefined)getPlugin("gatey" | "...")→ gibt ein Plugin-Objekt aus der Registry zurück
(Diese Funktionen sind schlanke Wrapper um globalThis.WpSuite.)
Plugin-Status
WpSuite.plugins.gatey.status kann eins von folgenden Werten haben:
unavailable— Plugin nicht vorhanden / noch nicht initialisiertinitializing— Startvorgangavailable— bereit zur Verwendungerror— Initialisierung fehlgeschlagen
Auf Verfügbarkeit warten
Es gibt drei übliche Wege:
1) onReady(cb)
globalThis.WpSuite?.plugins?.gatey?.onReady?.(() => {
console.log("Gatey is ready");
});
2) availability() (await-ready mit Timeout)
Liefert available, unavailable oder error zurück (niemals initializing).
const res = await globalThis.WpSuite?.plugins?.gatey?.availability?.();
if (res !== "available") {
console.warn("Gatey not available:", res);
}
3) Gatey-Core-Wrapper (waitForGateyReady)
Wenn Ihr Build das Gatey-Core-Paket enthält, können Sie diese Hilfsfunktionen verwenden:
getGateyPlugin()waitForGateyReady(timeoutMs = 8000)
Diese Hilfsfunktionen verwenden die unten genannten Ereignisse.
Bereitschafts- und Fehlerereignisse
Gatey löst DOM-Ereignisse aus, auf die Sie reagieren können:
wpsuite:gatey:readywpsuite:gatey:error
window.addEventListener("wpsuite:gatey:ready", () => console.log("ready"));
window.addEventListener("wpsuite:gatey:error", () => console.log("error"));
Cognito-Hilfsmethoden
Die Methoden unten liegen unter WpSuite.plugins.gatey.cognito.
| Methode | Rückgabe | Anwendungsfall |
|---|---|---|
getUsername() | string | Aktuellen Benutzernamen anzeigen |
getUserAttributes() | object | Ein Formular mit Profildaten vorausfüllen |
getMfaPreferences() | object | MFA-Status anzeigen |
clearMfaPreferences() | void | TOTP mit einem Klick deaktivieren |
isAuthenticated() | boolean | Eine Route oder Aktion schützen |
isInGroup("admin") | boolean | Rollenbasierte UI |
getGroups() | string[] | Eine Badge-Liste rendern |
getRoles() | string[] | IAM-Rollenumschalter / rollenbewusste UI |
getScopes() | string[] | Scope-bewusste Buttons |
getPreferredRole() | string | Bevorzugte Rolle automatisch auswählen |
setLanguage("en") | void | Sprache der Authenticator-UI wechseln |
Beispiel: Nutzer und Rollen anzeigen
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());
Hinweise
- Nutzen Sie immer optionale Verkettung (
?.), falls Gatey nicht auf der Seite installiert ist. - Wenn Sie ein Plugin/Theme entwickeln, das von Gatey abhängt, nutzen Sie lieber
availability()/onReady()/waitForGateyReady()statt Polling.
