ปัญหาที่พบบ่อย
ปัญหาที่พบบ่อยApplication Passwords ไม่ทำงาน

Application Passwords ไม่ทำงาน

เมื่อใช้ Application Passwords เพื่อยืนยันตัวตนในการส่งคำขอไปยัง GraphQL endpoint แต่ไม่สามารถทำงานได้ อาจเกิดจากความขัดแย้งกับปลั๊กอินที่ติดตั้งอยู่บนเว็บไซต์ โดยเฉพาะอย่างยิ่ง อาจเกิดขึ้นเมื่อ WooCommerce ถูกติดตั้งและเปิดใช้งานบนเว็บไซต์

หากการส่งคำขอไปยัง GraphQL endpoint โดยใช้ Application Password ล้มเหลวในการยืนยันตัวตนผู้ใช้ และคุณได้ดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ใน Gato GraphQL:

  • เปลี่ยนพาธของ GraphQL Single Endpoint
  • เปลี่ยน base slug ของ Custom Endpoints หรือ Persisted Queries
  • ปิดใช้งาน endpoint ใดๆ (โดยการปิดใช้งานโมดูลที่เกี่ยวข้อง)

...คุณต้องนำการเปลี่ยนแปลงเดียวกันไปใช้ผ่าน hook ด้วย เพื่อหลีกเลี่ยงความขัดแย้ง

สาเหตุที่เกิดปัญหา

มีความขัดแย้งด้านเวลาระหว่างการเริ่มต้นของ WooCommerce และการตั้งค่า service container ของ 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

ดังนั้น หากคุณแก้ไขพาธของ public endpoint ใดๆ ผ่านการตั้งค่าปลั๊กอิน คุณต้องนำการเปลี่ยนแปลงเดียวกันไปใช้ผ่าน hook ด้วย

อ่านคู่มือ การทำซ้ำการอัปเดตพาธ GraphQL endpoint ผ่าน hooks สำหรับวิธีแก้ไข