Wie verwaltet man Kundensitzungen in BigCommerce Catalyst?

Das Kunden-Session-Management ist der Prozess der Nachverfolgung der Interaktion eines Benutzers mit einer Anwendung. Es sorgt für die Aufrechterhaltung seines authentifizierten Status und speichert temporäre Daten während seines gesamten Besuchs. BigCommerce Catalyst verwendet ein beim Kunden-Login erhaltenes Kunden-Zugriffstoken, um den Kontext dieses Kunden bei Abfragen und Mutationen der GraphQL-Storefront-API zu identifizieren. Hier werden wir erläutern, wie Kunden-Sessions in BigCommerce Catalyst verwaltet und behandelt werden.

Auth.js

Auth.js ist eine Open-Source-Lösung zur Verwaltung gängiger Aufgaben im Bereich der Kundenauthentifizierung. BigCommerce ist standardmäßig der Anbieter für die Kundenauthentifizierung bei Catalyst. Auth.js bündelt jedoch die einfache Authentifizierung zu einem zuverlässigen System zur Nachverfolgung und Verwaltung der Kundensitzung. Bei der Standardkonfiguration von Catalyst verfolgt Auth.js die Sitzung eines angemeldeten Kunden mithilfe eines JWT-Cookies. Zu den wichtigen Dateien im Zusammenhang mit der Auth.js-Integration gehören:

  • auth/index.ts: Diese Datei enthält die zentrale Konfiguration und exportiert Schlüsselkomponenten, mit denen anderer Code interagieren kann. In dieser Datei wird der einfache BigCommerce-Authentifizierungsanbieter definiert und die Methode getSessionCustomerAccessToken exportiert. Mit ihr lässt sich das Token des angemeldeten Kunden auf einfache Weise abrufen. Auch die Anmelde- und Abmeldevorgänge der Storefront nutzen Funktionen, die aus dieser Datei exportiert werden.
  • app/api/auth/[…nextauth]/route.ts: Exportiert die von Auth.js benötigten API-Endpunkte.
  • middlewares/with-auth.ts: Ruft bei allen Anfragen Auth.js auf, um sicherzustellen, dass die Kundensitzung aufrechterhalten bleibt.

Sitzungssynchronisierung

Die GraphQL-Storefront-API unterstützt die Synchronisierung der authentifizierten Sitzung eines Kunden zwischen verschiedenen Frontend-Anwendungen. In der Standardumgebung von Catalyst ist dies vor allem für den „Redirected Checkout“-Prozess relevant, da Kunden, die sich auf der Catalyst-Storefront angemeldet haben, auch beim Aufrufen der BigCommerce-Kasse angemeldet bleiben müssen.

Die GraphQL-Mutation „createCartRedirectUrls“, die zur Weiterleitung von Besuchern verwendet wird, berücksichtigt das aktuelle Kundenzugriffstoken, und die tokenisierte Weiterleitungs-URL sorgt für die Synchronisierung sowohl des Warenkorbs als auch des authentifizierten Status, wenn der Besucher an der Kasse ankommt.

Einzelheiten zum Weiterleitungsprozess finden Sie unter app/[locale]/(default)/cart/redirect-to-checkout.ts.

Single Sign-On

Catalyst verwendet den URL-Pfad /login/token/{token}, um einen Kunden mithilfe eines speziellen Tokens anstelle der vom Benutzer angegebenen Anmeldedaten anzumelden. Dies unterstützt Single-Sign-On-Szenarien, bei denen die Identität eines Kunden bereits von einer externen Anwendung authentifiziert wurde.

Dieser Vorgang erfordert ein JSON Web Token (JWT), das von einer registrierten BigCommerce-App signiert wurde und eine Nutzlast enthält, die den anzumeldenden Kunden identifiziert. Einzelheiten zur Generierung eines gültigen JWT finden Sie unter „Customer Login API“ in der BigCommerce-Entwicklerdokumentation.

Weitere Informationen zur Catalyst-Implementierung finden Sie in den folgenden zugehörigen Dateien:

  • auth/index.ts – Die hier verwendete GraphQL-Mutation „loginWithCustomerLoginJwt“ ist für den Authentifizierungsprozess zuständig.
  • app/[locale]/(default)/(auth)/login/token/[token]/route.ts – Diese Route verarbeitet die Anfrage an /login/token/{token}.

Bitte kontaktieren Sie uns unter wargis@bay20.com/manish@bay20.com oder rufen Sie uns unter +91-8800519180 / +91-9582784309 an, wenn Sie Unterstützung im Zusammenhang mit Bigcommerce benötigen. Sie können auch die Bigcommerce-Entwicklungsseite besuchen, um sich über unsere Dienstleistungen zu informieren.