จัดการการอัปเดตขอบเขต (scope) ในโทเค็นองค์กร (Organization token)
ด้วยการตั้งค่าข้างต้น คุณสามารถส่งคำเชิญผ่านอีเมล และผู้ที่ได้รับเชิญสามารถเข้าร่วมองค์กรพร้อมบทบาทที่กำหนดไว้
ผู้ใช้ที่มีบทบาทองค์กรต่างกันจะมีขอบเขต (สิทธิ์) ที่แตกต่างกันในโทเค็นองค์กรของตน ทั้งแอปฝั่งไคลเอนต์และบริการฝั่งแบ็กเอนด์ของคุณควรตรวจสอบขอบเขตเหล่านี้เพื่อกำหนดฟีเจอร์ที่มองเห็นได้และการกระทำที่อนุญาต
ดังที่กล่าวไว้ก่อนหน้านี้ เทมเพลตองค์กรทำหน้าที่เป็นชั้นควบคุมการเข้าถึงที่สำคัญเพื่อปกป้อง สิทธิ์ขององค์กร หรือ API ระดับองค์กร อย่าลืมทบทวนหัวข้อการอนุญาตและเลือกโมเดลการอนุญาตที่เหมาะสมกับผลิตภัณฑ์ของคุณมากที่สุด
บทนี้เน้นที่ การจัดการสิทธิ์ (permission management) และแนวปฏิบัติที่ดีที่สุดสำหรับ การจัดการการเปลี่ยนแปลงขอบเขตและสิทธิ์ ในโทเค็นองค์กรของ Logto
จัดการการอัปเดตขอบเขตในโทเค็นองค์กร
การจัดการการอัปเดตขอบเขตในโทเค็นองค์กรประกอบด้วย:
เพิกถอนขอบเขตที่มีอยู่
ตัวอย่างเช่น การลดระดับแอดมินให้เป็นสมาชิกทั่วไปควรลบขอบเขตออกจากผู้ใช้ ในกรณีนี้ ให้ล้างโทเค็นองค์กรที่แคชไว้และดึงโทเค็นใหม่ด้วยโทเค็นรีเฟรช ขอบเขตที่ลดลงจะสะท้อนในโทเค็นองค์กรที่ออกใหม่ทันที
ให้ขอบเขตใหม่
สามารถแบ่งออกเป็นสองกรณี:
ให้ขอบเขตใหม่ที่มีการกำหนดไว้แล้วในระบบ auth ของคุณ
คล้ายกับการเพิกถอนขอบเขต หากขอบเขตที่ให้ใหม่ได้ลงทะเบียนไว้กับ auth server แล้ว ให้ออกโทเค็นองค์กรใหม่และขอบเขตใหม่จะสะท้อนทันที
ให้ขอบเขตใหม่ที่เพิ่งเพิ่มเข้ามาในระบบ auth ของคุณ
ในกรณีนี้ ให้เรียกกระบวนการเข้าสู่ระบบใหม่หรือขอความยินยอมใหม่ (re-consent) เพื่ออัปเดตโทเค็นองค์กรของผู้ใช้ เช่น เรียกใช้เมธอด signIn ใน Logto SDK
ตรวจสอบสิทธิ์แบบเรียลไทม์และอัปเดตโทเค็นองค์กร
Logto มี Management API สำหรับดึงสิทธิ์ของผู้ใช้ในองค์กรแบบเรียลไทม์
GET /api/organizations/{id}/users/{userId}/scopes(API references)
เปรียบเทียบขอบเขตในโทเค็นองค์กรของผู้ใช้กับสิทธิ์แบบเรียลไทม์เพื่อดูว่าผู้ใช้ถูกเลื่อนขั้นหรือลดขั้นหรือไม่
-
หากถูกลดขั้น ให้ล้างโทเค็นองค์กรที่แคชไว้ และ 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) และเปลี่ยนเส้นทางกลับมายังแอปของคุณโดยอัตโนมัติพร้อมขอบเขตที่อัปเดตในโทเค็นองค์กรของผู้ใช้