Application Passwords가 작동하지 않는 경우
GraphQL 엔드포인트에 대한 요청을 인증하기 위해 Application Passwords를 사용하고 있는데 작동하지 않는 경우, 사이트에 설치된 플러그인과의 충돌이 발생하고 있을 수 있습니다. 특히 WooCommerce가 사이트에 설치되어 활성화된 경우에 발생할 수 있습니다.
Application Password를 사용하여 GraphQL 엔드포인트에 요청했을 때 사용자 인증이 실패하고, Gato GraphQL에서 다음 중 하나를 수행한 경우:
- GraphQL Single Endpoint의 경로를 변경한 경우
- Custom Endpoints 또는 Persisted Queries의 기본 슬러그를 변경한 경우
- 엔드포인트를 비활성화한 경우 (해당 모듈을 비활성화하여)
...충돌을 피하기 위해 동일한 변경 사항을 훅을 통해서도 적용해야 합니다.
이 문제가 발생하는 이유
WooCommerce의 초기화와 Gato GraphQL의 서비스 컨테이너 설정 사이에 타이밍 충돌이 발생합니다.
WooCommerce는 초기화 프로세스 중에 application_password_is_api_request 필터를 트리거합니다. Gato GraphQL이 아직 초기화되지 않은 상태이기 때문에, 요청이 GraphQL 엔드포인트에서 오는지 여부를 판단하고 인증에 Application Passwords를 사용할 수 있도록 데이터베이스에서 올바른 엔드포인트 경로를 가져올 수 없는 상태입니다.
임시 해결 방법
application_password_is_api_request 필터가 WooCommerce (또는 다른 플러그인)에 의해 트리거되면, Gato GraphQL은 GraphQL 엔드포인트의 기본 경로를 가정합니다.
따라서 플러그인 설정에서 공개 엔드포인트의 경로를 변경한 경우, 훅을 통해서도 동일한 변경 사항을 적용해야 합니다.
해결 방법은 가이드 훅을 통해 GraphQL 엔드포인트 경로 변경 사항 복제하기를 참조하세요.