Vấn đề thường gặp
Vấn đề thường gặpMật khẩu ứng dụng không hoạt động

Mật khẩu ứng dụng không hoạt động

Khi sử dụng mật khẩu ứng dụng để xác thực các yêu cầu gửi đến endpoint GraphQL mà chúng không hoạt động, có thể có xung đột với một plugin đang được cài đặt trên trang web. Cụ thể, điều này có thể xảy ra khi WooCommerce được cài đặt và kích hoạt trên trang web.

Nếu yêu cầu đến một endpoint GraphQL sử dụng Mật khẩu ứng dụng thất bại trong việc xác thực người dùng, và bạn đã thực hiện một trong các thao tác sau trong Gato GraphQL:

  • Cập nhật đường dẫn của GraphQL Single Endpoint
  • Cập nhật slug cơ sở của Custom Endpoints hoặc Persisted Queries
  • Tắt bất kỳ endpoint nào (bằng cách tắt module tương ứng)

...thì bạn phải áp dụng cùng một thay đổi thông qua hook để tránh xung đột.

Tại sao điều này xảy ra

Có một xung đột về thời điểm giữa quá trình khởi tạo của WooCommerce và quá trình thiết lập service container của Gato GraphQL.

WooCommerce kích hoạt bộ lọc application_password_is_api_request trong quá trình khởi tạo của nó. Do Gato GraphQL chưa được khởi tạo, nó không thể lấy đúng các đường dẫn endpoint từ cơ sở dữ liệu để xác định xem yêu cầu có đến từ một endpoint GraphQL hay không và cho phép sử dụng mật khẩu ứng dụng để xác thực.

Giải pháp tạm thời

Khi bộ lọc application_password_is_api_request được kích hoạt bởi WooCommerce (hoặc một plugin khác), Gato GraphQL sẽ giả định các đường dẫn mặc định cho các endpoint GraphQL.

Do đó, nếu bạn thay đổi đường dẫn của bất kỳ endpoint công khai nào thông qua phần Cài đặt của plugin, bạn phải áp dụng cùng một thay đổi thông qua hook.

Đọc hướng dẫn Sao chép các cập nhật đường dẫn endpoint GraphQL thông qua hooks để biết giải pháp.