การลงชื่อออก
การลงชื่อออกใน Logto ประกอบด้วยสองชั้น:
- การลงชื่อออกจากเซสชัน Logto: สิ้นสุดเซสชันการลงชื่อเข้าใช้แบบรวมศูนย์ภายใต้โดเมน Logto
- การลงชื่อออกจากแอป: ล้างสถานะเซสชันและโทเค็นในแอปพลิเคชันลูกค้าของคุณ
เพื่อให้เข้าใจวิธีการทำงานของเซสชันใน Logto ได้ดีขึ้น ดูที่ Sessions
กลไกการลงชื่อออก
1) การลงชื่อออกเฉพาะฝั่งลูกค้า
แอปพลิเคชันลูกค้าล้างเซสชันและโทเค็น (โทเค็น ID / โทเค็นการเข้าถึง / โทเค็นรีเฟรช) ของตัวเอง ซึ่งจะลงชื่อผู้ใช้ออกจากสถานะภายในแอปนั้นเท่านั้น
- เซสชัน Logto อาจยังคงใช้งานอยู่
- แอปอื่น ๆ ภายใต้เซสชัน Logto เดียวกันอาจยังคง SSO ได้
2) สิ้นสุดเซสชันที่ Logto (การลงชื่อออกแบบรวมศูนย์ใน Logto ปัจจุบัน)
เพื่อเคลียร์เซสชัน Logto แบบรวมศูนย์ แอปจะเปลี่ยนเส้นทางผู้ใช้ไปยังจุดสิ้นสุดเซสชัน เช่น:
https://{your-logto-domain}/oidc/session/end
ในพฤติกรรม SDK ของ Logto ปัจจุบัน:
signOut()เปลี่ยนเส้นทางไปที่/session/end- จากนั้นไปที่
/session/end/confirm - ฟอร์มยืนยันเริ่มต้นจะโพสต์
logout=trueโดยอัตโนมัติ
ผลลัพธ์คือการลงชื่อออกใน SDK ปัจจุบันถือเป็น การลงชื่อออกแบบรวมศูนย์
- การลงชื่อออกแบบรวมศูนย์: ยกเลิกเซสชัน Logto แบบรวมศูนย์
เกิดอะไรขึ้นระหว่างการลงชื่อออกแบบรวมศูนย์
ระหว่างการลงชื่อออกแบบรวมศูนย์:
- เซสชัน Logto แบบรวมศูนย์ถูกยกเลิก
- การให้สิทธิ์แอปที่เกี่ยวข้องจะถูกจัดการตามสถานะการอนุญาตของแอป:
- หาก
offline_accessไม่ได้ รับการให้สิทธิ์ การให้สิทธิ์ที่เกี่ยวข้องจะถูกยกเลิก - หาก
offline_accessได้รับ การให้สิทธิ์ การให้สิทธิ์จะไม่ถูกยกเลิกโดยการสิ้นสุดเซสชัน
- หาก
- สำหรับกรณี
offline_accessโทเค็นรีเฟรชและการให้สิทธิ์ยังคงใช้ได้จนกว่าจะหมดอายุ
อายุการให้สิทธิ์และผลกระทบของ offline_access
- ค่าเริ่มต้นของอายุการให้สิทธิ์ Logto คือ 180 วัน
- หาก
offline_accessได้รับการให้สิทธิ์ การสิ้นสุดเซสชันจะไม่ยกเลิกการให้สิทธิ์แอปนั้นโดยค่าเริ่มต้น - โซ่โทเค็นรีเฟรชที่เกี่ยวข้องกับการให้สิทธิ์นั้นสามารถดำเนินต่อไปได้จนกว่าการให้สิทธิ์จะหมดอายุ (หรือถูกยกเลิกโดยเฉพาะ)
การลงชื่อออกแบบรวมศูนย์: การออกจากระบบผ่านช่องทางหลัง
เพื่อความสอดคล้องระหว่างแอป Logto รองรับ การออกจากระบบผ่านช่องทางหลัง
เมื่อผู้ใช้ลงชื่อออกจากแอปหนึ่ง Logto สามารถแจ้งเตือนแอปทั้งหมดที่เข้าร่วมในเซสชันเดียวกันโดยส่งโทเค็นออกจากระบบไปยัง URI การออกจากระบบผ่านช่องทางหลังที่ลงทะเบียนไว้ของแต่ละแอป
หาก Is session required เปิดใช้งานในการตั้งค่าช่องทางหลังของแอป โทเค็นออกจากระบบจะรวม sid เพื่อระบุเซสชัน Logto
กระบวนการทั่วไป:
- ผู้ใช้เริ่มการลงชื่อออกจากแอปหนึ่ง
- Logto ประมวลผลการสิ้นสุดเซสชันและส่งโทเค็นออกจากระบบไปยัง URI การออกจากระบบผ่านช่องทางหลังที่ลงทะเบียนไว้
- แต่ละแอปตรวจสอบโทเค็นออกจากระบบและล้างเซสชัน / โทเค็นภายในของตัวเอง
วิธีการลงชื่อออกใน Logto SDKs
- SPA และเว็บ:
client.signOut()ล้างการเก็บโทเค็นภายในและเปลี่ยนเส้นทางไปยังจุดสิ้นสุดเซสชัน Logto คุณสามารถระบุ URI เปลี่ยนเส้นทางหลังการออกจากระบบได้ - เนทีฟ (รวมถึง React Native / Flutter): มักจะล้างการเก็บโทเค็นภายในเท่านั้น เว็บวิวที่ไม่มีเซสชันหมายถึงไม่มีคุกกี้เบราว์เซอร์ Logto ที่คงอยู่ให้ล้าง
สำหรับแอปพลิเคชันเนทีฟที่ไม่รองรับเว็บวิวที่ไม่มีเซสชันหรือไม่รู้จักการตั้งค่าที่ emphasized (แอป Android ที่ใช้ React Native หรือ Flutter SDK) คุณสามารถบังคับให้ผู้ใช้ลงชื่อเข้าใช้อีกครั้งโดยส่งพารามิเตอร์ prompt=login ในคำขอการอนุญาต
บังคับการยืนยันตัวตนใหม่ทุกครั้งที่เข้าถึง
สำหรับการดำเนินการที่มีความปลอดภัยสูง ให้รวม prompt=login ในคำขอการยืนยันตัวตนเพื่อข้าม SSO และบังคับให้ป้อนข้อมูลรับรองทุกครั้ง
หากขอ offline_access (เพื่อรับโทเค็นรีเฟรช) ให้รวม consent, prompt=login consent
การตั้งค่ารวมทั่วไป:
prompt=login consent
คำถามที่พบบ่อย
ฉันไม่ได้รับการแจ้งเตือนการออกจากระบบผ่านช่องทางหลัง
- ตรวจสอบให้แน่ใจว่า URI การออกจากระบบผ่านช่องทางหลังลงทะเบียนถูกต้องในแดชบอร์ด Logto
- ตรวจสอบให้แน่ใจว่าแอปของคุณมีสถานะการลงชื่อเข้าใช้ที่ใช้งานอยู่สำหรับบริบทผู้ใช้ / เซสชันเดียวกัน
แหล่งข้อมูลที่เกี่ยวข้อง
ทำความเข้าใจการออกจากระบบผ่านช่องทางหลังของ OIDC