Veelvoorkomende problemen
Veelvoorkomende problemenApplication Passwords werken niet

Application Passwords werken niet

Wanneer je application passwords gebruikt om verzoeken te authenticeren naar het GraphQL-endpoint en deze niet werken, kan er een conflict zijn met een plugin die op de site is geïnstalleerd. Dit kan met name gebeuren wanneer WooCommerce op de site is geïnstalleerd en geactiveerd.

Als een verzoek naar een GraphQL-endpoint met een Application Password de gebruiker niet kan authenticeren, en je hebt een van de volgende dingen gedaan in Gato GraphQL:

  • Het pad van het GraphQL Single Endpoint bijgewerkt
  • De basisslug van Custom Endpoints of Persisted Queries bijgewerkt
  • Een endpoint uitgeschakeld (door de bijbehorende module uit te schakelen)

...dan moet je dezelfde wijziging via een hook toepassen om het conflict te vermijden.

Waarom dit gebeurt

Er is een timingconflict tussen de initialisatie van WooCommerce en de opzet van de servicecontainer van Gato GraphQL.

WooCommerce triggert het filter application_password_is_api_request tijdens zijn initialisatieproces. Omdat Gato GraphQL nog niet is geïnitialiseerd, kan het de juiste endpointpaden niet ophalen uit de database om te bepalen of het verzoek afkomstig is van een GraphQL-endpoint en om het gebruik van application passwords voor authenticatie mogelijk te maken.

Oplossing

Wanneer het filter application_password_is_api_request door WooCommerce (of een andere plugin) wordt getriggerd, gaat Gato GraphQL uit van de standaardpaden voor de GraphQL-endpoints.

Als je vervolgens het pad van een publiek endpoint aanpast via de plugin-instellingen, moet je dezelfde wijziging via een hook toepassen.

Lees de gids GraphQL-endpointpadupdates repliceren via hooks voor de oplossing.