ข้ามไปยังเนื้อหาหลัก

จัดการการอัปเดตขอบเขต (scope) ในโทเค็นองค์กร (Organization token)

ด้วยการตั้งค่าข้างต้น คุณสามารถส่งคำเชิญผ่านอีเมล และผู้ที่ได้รับเชิญสามารถเข้าร่วมองค์กรพร้อมบทบาทที่กำหนดไว้

ผู้ใช้ที่มีบทบาทองค์กรต่างกันจะมีขอบเขต (สิทธิ์) ที่แตกต่างกันในโทเค็นองค์กรของตน ทั้งแอปฝั่งไคลเอนต์และบริการฝั่งแบ็กเอนด์ของคุณควรตรวจสอบขอบเขตเหล่านี้เพื่อกำหนดฟีเจอร์ที่มองเห็นได้และการกระทำที่อนุญาต

ดังที่กล่าวไว้ก่อนหน้านี้ เทมเพลตองค์กรทำหน้าที่เป็นชั้นควบคุมการเข้าถึงที่สำคัญเพื่อปกป้อง สิทธิ์ขององค์กร หรือ API ระดับองค์กร อย่าลืมทบทวนหัวข้อการอนุญาตและเลือกโมเดลการอนุญาตที่เหมาะสมกับผลิตภัณฑ์ของคุณมากที่สุด

บทนี้เน้นที่ การจัดการสิทธิ์ (permission management) และแนวปฏิบัติที่ดีที่สุดสำหรับ การจัดการการเปลี่ยนแปลงขอบเขตและสิทธิ์ ในโทเค็นองค์กรของ Logto

จัดการการอัปเดตขอบเขตในโทเค็นองค์กร

การจัดการการอัปเดตขอบเขตในโทเค็นองค์กรประกอบด้วย:

เพิกถอนขอบเขตที่มีอยู่

ตัวอย่างเช่น การลดระดับแอดมินให้เป็นสมาชิกทั่วไปควรลบขอบเขตออกจากผู้ใช้ ในกรณีนี้ ให้ล้างโทเค็นองค์กรที่แคชไว้และดึงโทเค็นใหม่ด้วยโทเค็นรีเฟรช ขอบเขตที่ลดลงจะสะท้อนในโทเค็นองค์กรที่ออกใหม่ทันที

ให้ขอบเขตใหม่

สามารถแบ่งออกเป็นสองกรณี:

ให้ขอบเขตใหม่ที่มีการกำหนดไว้แล้วในระบบ auth ของคุณ

คล้ายกับการเพิกถอนขอบเขต หากขอบเขตที่ให้ใหม่ได้ลงทะเบียนไว้กับ auth server แล้ว ให้ออกโทเค็นองค์กรใหม่และขอบเขตใหม่จะสะท้อนทันที

ให้ขอบเขตใหม่ที่เพิ่งเพิ่มเข้ามาในระบบ auth ของคุณ

ในกรณีนี้ ให้เรียกกระบวนการเข้าสู่ระบบใหม่หรือขอความยินยอมใหม่ (re-consent) เพื่ออัปเดตโทเค็นองค์กรของผู้ใช้ เช่น เรียกใช้เมธอด signIn ใน Logto SDK

ตรวจสอบสิทธิ์แบบเรียลไทม์และอัปเดตโทเค็นองค์กร

Logto มี Management API สำหรับดึงสิทธิ์ของผู้ใช้ในองค์กรแบบเรียลไทม์

เปรียบเทียบขอบเขตในโทเค็นองค์กรของผู้ใช้กับสิทธิ์แบบเรียลไทม์เพื่อดูว่าผู้ใช้ถูกเลื่อนขั้นหรือลดขั้นหรือไม่

  • หากถูกลดขั้น ให้ล้างโทเค็นองค์กรที่แคชไว้ และ SDK จะออกโทเค็นใหม่ที่มีขอบเขตอัปเดตให้อัตโนมัติ

    const { clearAccessToken } = useLogto();

    ...
    // หากขอบเขตแบบเรียลไทม์ที่ดึงมา มีจำนวนน้อยกว่าขอบเขตในโทเค็นองค์กร
    await clearAccessToken();

    กรณีนี้ไม่จำเป็นต้องเข้าสู่ระบบใหม่หรือขอความยินยอมใหม่ โทเค็นองค์กรใหม่จะถูกออกให้อัตโนมัติโดย Logto SDK

  • หากมีการเพิ่มขอบเขตใหม่ในระบบ auth ของคุณ ให้เรียกกระบวนการเข้าสู่ระบบใหม่หรือขอความยินยอมใหม่เพื่ออัปเดตโทเค็นองค์กรของผู้ใช้ เช่น ด้วย React SDK:

    const { clearAllTokens, signIn } = useLogto();

    ...
    // หากขอบเขตแบบเรียลไทม์ที่ดึงมา มีขอบเขตใหม่มากกว่าขอบเขตในโทเค็นองค์กร
    await clearAllTokens();
    signIn({
    redirectUri: '<your-sign-in-redirect-uri>',
    prompt: 'consent',
    });

    โค้ดข้างต้นจะนำทางไปยังหน้าขอความยินยอม (consent screen) และเปลี่ยนเส้นทางกลับมายังแอปของคุณโดยอัตโนมัติพร้อมขอบเขตที่อัปเดตในโทเค็นองค์กรของผู้ใช้