Les Application Passwords ne fonctionnent pas
Lors de l'utilisation des application passwords pour authentifier des requêtes vers l'endpoint GraphQL, et qu'elles ne fonctionnent pas, il peut y avoir un conflit avec un plugin installé sur le site. En particulier, cela peut se produire lorsque WooCommerce est installé et activé sur le site.
Si la demande d'un endpoint GraphQL utilisant une Application Password échoue à authentifier l'utilisateur, et que vous avez effectué l'une des opérations suivantes dans Gato GraphQL :
- Mis à jour le chemin du GraphQL Single Endpoint
- Mis à jour le slug de base des Custom Endpoints ou Persisted Queries
- Désactivé un endpoint (en désactivant le module correspondant)
...vous devez alors appliquer la même modification via un hook, afin d'éviter le conflit.
Pourquoi cela se produit
Il y a un conflit de synchronisation entre l'initialisation de WooCommerce et la configuration du conteneur de services de Gato GraphQL.
WooCommerce déclenche le filtre application_password_is_api_request lors de son processus d'initialisation. Comme Gato GraphQL n'est pas encore initialisé, il ne peut pas récupérer les chemins d'endpoint corrects depuis la base de données, afin de déterminer si la requête provient d'un endpoint GraphQL et d'activer l'utilisation des application passwords pour l'authentification.
Solution temporaire
Lorsque le filtre application_password_is_api_request est déclenché par WooCommerce (ou un autre plugin), Gato GraphQL suppose les chemins par défaut pour les endpoints GraphQL.
Ainsi, si vous modifiez le chemin d'un endpoint public via les Réglages du plugin, vous devez appliquer la même modification via un hook.
Consultez le guide Répliquer les mises à jour du chemin de l'endpoint GraphQL via des hooks pour la solution.