ส่วนขยาย

Access Control

มอบสิทธิ์การเข้าถึง schema อย่างละเอียด (ตามสถานะการเข้าสู่ระบบของผู้ใช้ บทบาทหรือสิทธิ์ที่มี หรือตาม IP) เพื่อจัดการว่าใครสามารถเข้าถึงข้อมูลอะไรได้บ้าง

Logo
Target Image

Click to watch tutorial video - 08:04

กำหนด Access Control Lists เพื่อจัดการการเข้าถึง API อย่างละเอียดสำหรับผู้ใช้ของคุณ

Access Control Lists

ส่วนขยายนี้ช่วยให้เราสามารถสร้าง Access Control Lists เพื่อจัดการว่าใครสามารถเข้าถึงองค์ประกอบต่าง ๆ (operations, fields และ directives) จาก GraphQL schema ได้บ้าง โดยใช้กฎต่อไปนี้:

  • ปิดการเข้าถึง
  • อนุญาตการเข้าถึงเฉพาะเมื่อผู้ใช้เข้าสู่ระบบหรือออกจากระบบแล้ว
  • อนุญาตการเข้าถึงเฉพาะเมื่อผู้ใช้มีบทบาทบางอย่าง
  • อนุญาตการเข้าถึงเฉพาะเมื่อผู้ใช้มีสิทธิ์บางอย่าง
  • อนุญาตการเข้าถึงเฉพาะเมื่อผู้เยี่ยมชมมาจาก IP ที่ได้รับอนุญาต
ตัวแก้ไข Access Control List
ตัวแก้ไข Access Control List

เราระบุว่าต้องปฏิบัติตามกฎใดในการเข้าถึงองค์ประกอบ schema ใด จากบรรดา operations, fields, global fields และ directives

เมื่อดำเนินการ GraphQL query หากมีองค์ประกอบ schema ที่เลือกไว้ใน Access Control List อยู่ กฎที่เลือกไว้จะถูกประเมิน

หากกฎใดไม่ได้รับการปฏิบัติตาม การเข้าถึง operation, field หรือ directive นั้นจะถูกปฏิเสธ

โหมด Public/Private Schema

เมื่อการเข้าถึง field หรือ directive ถูกปฏิเสธผ่าน Access Control จะมี 2 วิธีที่ API จะทำงาน:

โหมด Public: fields ใน schema จะถูกเปิดเผย และเมื่อไม่ปฏิบัติตามสิทธิ์ ผู้ใช้จะได้รับข้อความแสดงข้อผิดพลาดพร้อมคำอธิบายว่าเหตุใดสิทธิ์จึงถูกปฏิเสธ พฤติกรรมนี้ทำให้ metadata จาก schema พร้อมใช้งานอยู่เสมอ

โหมด Private: schema จะถูกปรับแต่งสำหรับผู้ใช้แต่ละคน โดยมีเฉพาะ fields ที่ผู้ใช้นั้นสามารถเข้าถึงได้ ดังนั้นเมื่อพยายามเข้าถึง field ที่ถูกห้าม ข้อความแสดงข้อผิดพลาดจะบอกว่า field นั้นไม่มีอยู่ พฤติกรรมนี้เปิดเผย metadata จาก schema เฉพาะกับผู้ใช้ที่สามารถเข้าถึงได้เท่านั้น

โหมด Public/Private schema แบบรายบุคคล

ตัวอย่างเช่น ใน โหมด public เราอาจได้รับ response นี้:

{
  "errors": [
    {
      "message": "You must have role 'author' to access field 'title' for type 'Post'",
      "locations": [
        {
          "line": 86,
          "column": 3
        }
      ]
    }
  ]
}

ในขณะที่ใน โหมด private เราอาจได้รับ response นี้:

{
  "errors": [
    {
      "message": "There is no field 'title' on type 'Post'",
      "locations": [
        {
          "line": 86,
          "column": 3
        }
      ]
    }
  ]
}

ซื้อบันเดิล All-Inclusive

ส่วนตัว
$79
/ปี
“All-Inclusive” บันเดิล
ใบอนุญาตสำหรับ 1 โดเมน
ซื้อ ->
  • 1 โดเมน
  • การสนับสนุน
  • การอัปเดตผลิตภัณฑ์
องค์กร
$99
/ปี
“All-Inclusive” บันเดิล
ใบอนุญาตสำหรับ 3 โดเมน
ซื้อ ->
  • 3 โดเมน
  • การสนับสนุน
  • การอัปเดตผลิตภัณฑ์
มืออาชีพ
$199
/ปี
“All-Inclusive” บันเดิล
ใบอนุญาตสำหรับ 10 โดเมน
ซื้อ ->
  • 10 โดเมน
  • การสนับสนุน
  • การอัปเดตผลิตภัณฑ์

ใบอนุญาตมีอายุ 1 ปี (ต่ออายุได้ทุกปี) ราคาเป็น USD

ต้องการโดเมนเพิ่มเติมใช่ไหม? ติดต่อเรา

รับประกันคืนเงินภายใน 30 วัน

ซื้อส่วนขยายใดก็ได้ด้วยความมั่นใจว่าคุณสามารถขอคืนเงินได้

Testimonial image

“ปลั๊กอินนี้อยู่ในระดับที่แตกต่างอย่างสิ้นเชิง! มันพาเว็บไซต์ของคุณไปสู่อีกระดับและเปลี่ยนให้กลายเป็นเครื่องมือที่ทรงพลัง ยิ่งคุณสำรวจสิ่งที่มันทำได้มากเท่าไหร่ คุณก็จะยิ่งประทับใจมากขึ้นเท่านั้น ถ้าคุณยังลังเล อย่ารอช้า ไม่งั้นจะเสียใจทีหลัง! เอกสารประกอบพูดแทนตัวเองได้ดีมาก และแข็งแกร่งที่สุดเท่าที่จะมีได้ Leo (นักพัฒนา) เป็นหนึ่งในนักพัฒนาที่เฉลียวฉลาดและว่องไวที่สุดที่ฉันเคยพบ เขาตอบสนองได้รวดเร็วมากและรู้ดีว่าตนเองทำอะไร ฉันตื่นเต้นอย่างแท้จริงกับสิ่งที่ปลั๊กอินนี้ทำได้ ความเป็นไปได้แทบจะไม่มีสิ้นสุด และถ้า SEO สำคัญสำหรับคุณ มันจะช่วยให้เว็บไซต์ของคุณติดอันดับได้สูงมาก”

olmate - นักพัฒนาเว็บ

สมัครรับจดหมายข่าวของเรา

ติดตามการอัปเดตทั้งหมดของ Gato GraphQL