Application Passwords не работают
При использовании application passwords для аутентификации запросов к GraphQL endpoint они могут не работать из-за конфликта с плагином, установленным на сайте. В частности, это может происходить, когда WooCommerce установлен и активирован на сайте.
Если запрос к GraphQL endpoint с использованием Application Password завершается ошибкой аутентификации пользователя, и вы выполнили одно из следующих действий в Gato GraphQL:
- Изменили путь GraphQL Single Endpoint
- Изменили базовый slug Custom Endpoints или Persisted Queries
- Отключили какой-либо endpoint (отключив соответствующий модуль)
...то вы должны применить то же изменение с помощью hook, чтобы избежать конфликта.
Почему это происходит
Существует конфликт синхронизации между инициализацией WooCommerce и настройкой контейнера служб Gato GraphQL.
WooCommerce запускает фильтр application_password_is_api_request в процессе инициализации. Поскольку Gato GraphQL ещё не инициализирован, он не может получить правильные пути endpoint из базы данных, чтобы определить, поступает ли запрос от GraphQL endpoint и разрешить использование application passwords для аутентификации.
Обходное решение
Когда фильтр application_password_is_api_request запускается WooCommerce (или другим плагином), Gato GraphQL использует пути по умолчанию для GraphQL endpoints.
Поэтому, если вы изменяете путь любого публичного endpoint через настройки плагина, вы должны применить то же изменение с помощью hook.
Прочитайте руководство Replicating GraphQL endpoint path updates via hooks для получения решения.