
คุณสมบัติ:
การควบคุมการเข้าถึง
การควบคุมการเข้าถึง
GraphQL endpoint ที่สามารถคืนค่าข้อมูลใดก็ได้ที่เข้าถึงได้ผ่าน schema อาจเปิดช่องให้ผู้ไม่ประสงค์ดีดึงข้อมูลส่วนตัวออกไปได้ ด้วยเหตุนี้ เราจึงต้องใช้มาตรการรักษาความปลอดภัยเพื่อปกป้องข้อมูล
การควบคุมการเข้าถึง
ด้วย รายการควบคุมการเข้าถึง เราสามารถกำหนดได้ว่าใครมีสิทธิ์เข้าถึง operation, field และ directive แต่ละรายการใน schema ได้บ้าง:
- ปิดการเข้าถึงสำหรับทุกคน
- อนุญาตการเข้าถึงหากผู้ใช้ล็อกอินอยู่ หรือยังไม่ได้ล็อกอิน
- อนุญาตการเข้าถึงหากผู้ใช้มีบทบาทที่กำหนด
- อนุญาตการเข้าถึงหากผู้ใช้มีความสามารถที่กำหนด
- อนุญาตการเข้าถึงหากผู้เยี่ยมชมมาจาก IP หรือช่วง IP ที่ระบุ

Schema แบบสาธารณะ/ส่วนตัว
จะเกิดอะไรขึ้นเมื่อผู้ใช้ที่ไม่มีสิทธิ์เข้าถึง field หรือ directive บางรายการใน schema พยายามเข้าถึงมัน?
ด้วย โหมด API แบบสาธารณะ/ส่วนตัว เราสามารถควบคุมพฤติกรรมที่ต้องการได้:
ใน API แบบสาธารณะ field ต่างๆ ใน schema จะถูกเปิดเผย และเมื่อสิทธิ์ไม่ได้รับการตอบสนอง ผู้ใช้จะได้รับข้อความแสดงข้อผิดพลาดพร้อมคำอธิบายว่าเหตุใดสิทธิ์จึงถูกปฏิเสธ
ใน API แบบส่วนตัว schema จะถูกปรับแต่งให้เหมาะกับผู้ใช้แต่ละคน โดยมีเฉพาะ field ที่ผู้ใช้นั้นมีสิทธิ์เข้าถึง ดังนั้นเมื่อพยายามเข้าถึง field ที่ถูกจำกัด ข้อความแสดงข้อผิดพลาดจะระบุว่า field นั้นไม่มีอยู่
