Application Passwords funktionieren nicht
Wenn du Application Passwords verwendest, um Anfragen an den GraphQL-Endpunkt zu authentifizieren, und diese nicht funktionieren, kann es einen Konflikt mit einem installierten Plugin auf der Website geben. Das kann insbesondere dann passieren, wenn WooCommerce auf der Website installiert und aktiviert ist.
Wenn eine Anfrage an einen GraphQL-Endpunkt mit einer Application Password die Authentifizierung des Benutzers nicht schafft, und du in Gato GraphQL eine der folgenden Aktionen durchgeführt hast:
- Den Pfad des GraphQL Single Endpoint aktualisiert
- Den Basis-Slug von Custom Endpoints oder Persisted Queries aktualisiert
- Einen Endpunkt deaktiviert (durch Deaktivieren des entsprechenden Moduls)
...dann musst du dieselbe Änderung über einen Hook anwenden, um den Konflikt zu vermeiden.
Warum das passiert
Es gibt einen Timing-Konflikt zwischen der Initialisierung von WooCommerce und dem Service-Container-Setup von Gato GraphQL.
WooCommerce löst den Filter application_password_is_api_request während seines Initialisierungsprozesses aus. Da Gato GraphQL noch nicht initialisiert ist, kann es die korrekten Endpunkt-Pfade nicht aus der Datenbank abrufen, um festzustellen, ob die Anfrage von einem GraphQL-Endpunkt stammt, und die Verwendung von Application Passwords zur Authentifizierung zu ermöglichen.
Workaround
Wenn der Filter application_password_is_api_request von WooCommerce (oder einem anderen Plugin) ausgelöst wird, nimmt Gato GraphQL die Standard-Pfade für die GraphQL-Endpunkte an.
Wenn du also den Pfad eines öffentlichen Endpunkts über die Plugin-Einstellungen änderst, musst du dieselbe Änderung über einen Hook anwenden.
Lies die Anleitung GraphQL-Endpunkt-Pfad-Aktualisierungen über Hooks replizieren für die Lösung.