เข้าสู่ระบบ OAuth
HandyCafe รองรับการเข้าสู่ระบบโซเชียล/OAuth สำหรับลูกค้าที่ใช้ Device Authorization Grant (RFC 8628) โฟลว์นี้ออกแบบมาสำหรับคีออสก์และสภาพแวดล้อมสาธารณะที่ลูกค้าไม่สามารถป้อนข้อมูลประจำตัวบนพีซีที่ใช้ร่วมกันได้อย่างปลอดภัย
ผู้ให้บริการที่รองรับ
| ผู้ให้บริการ | จุดสิ้นสุด |
|---|---|
| กูเกิล | oauth2.googleapis.com |
| graph.facebook.com/v21.0 | |
| แอปเปิ้ล | appleid.apple.com |
| X (Twitter) | api.x.com/2/oauth2 |
| ไม่ลงรอยกัน | discord.com/api/oauth2 |
ผู้ให้บริการแต่ละรายสามารถเปิดหรือปิดใช้ทีละรายได้ใน การตั้งค่า > OAuth
ขั้นตอนการรับรองความถูกต้อง
ขั้นตอนการอนุญาตอุปกรณ์จะดำเนินการตามขั้นตอนต่อไปนี้:
- ลูกค้าเลือกผู้ให้บริการ -- บนหน้าจอไคลเอ็นต์ไม่ได้ใช้งาน ลูกค้าแตะปุ่มผู้ให้บริการ (เช่น Google, Discord)
- ไคลเอนต์ส่งคำขอไปยังเซิร์ฟเวอร์ -- ไคลเอนต์แจ้งเซิร์ฟเวอร์ HandyCafe ว่าการเข้าสู่ระบบ OAuth ได้เริ่มต้นแล้ว
- เซิร์ฟเวอร์ขอรหัสอุปกรณ์ -- เซิร์ฟเวอร์ติดต่อกับจุดสิ้นสุดการอนุญาตอุปกรณ์ของผู้ให้บริการที่เลือก และรับรหัสอุปกรณ์ รหัสผู้ใช้ และ URI การตรวจสอบ
- ไคลเอนต์แสดงโค้ด -- ไคลเอนต์แสดง
user_codeและverification_uriให้กับลูกค้า ซึ่งโดยทั่วไปแล้วจะแสดงผลเป็นโค้ด QR เพื่อให้สแกนได้ง่าย - ลูกค้าตรวจสอบสิทธิ์บนโทรศัพท์ของตน -- ลูกค้าสแกนรหัส QR ด้วยอุปกรณ์ส่วนตัว (โทรศัพท์หรือแท็บเล็ต) และดำเนินการตรวจสอบความถูกต้องบนเว็บไซต์ของผู้ให้บริการให้เสร็จสิ้น
- การสำรวจความคิดเห็นของเซิร์ฟเวอร์สำหรับโทเค็น -- เซิร์ฟเวอร์จะสำรวจโทเค็นของผู้ให้บริการเป็นระยะ รัฐโพลประกอบด้วย:
- รอดำเนินการ -- ลูกค้ายังไม่ผ่านการรับรองความถูกต้อง
- ช้าลง -- โพลบ่อยเกินไป เซิร์ฟเวอร์ปิดตัวลง
- สำเร็จ -- การรับรองความถูกต้องเสร็จสมบูรณ์ โทเค็นที่ได้รับ
- หมดอายุ -- รหัสอุปกรณ์หมดอายุก่อนการตรวจสอบสิทธิ์
- ข้อผิดพลาด -- เกิดข้อผิดพลาดที่ไม่คาดคิด
- เซิร์ฟเวอร์ดึงข้อมูลผู้ใช้ -- เมื่อสำเร็จ เซิร์ฟเวอร์จะใช้โทเค็นเพื่อดึงโปรไฟล์ของลูกค้าจากผู้ให้บริการ รวมถึง
provider_uid,email,nameและavatar_url - ผู้ดูแลระบบอนุมัติหรือปฏิเสธ -- คำขอเข้าสู่ระบบจะปรากฏบนหน้าคำขอ ผู้ดูแลระบบหรือแคชเชียร์จะตรวจสอบและอนุมัติหรือปฏิเสธคำขอ
- สร้างหรือเชื่อมโยงสมาชิก -- หากได้รับการอนุมัติ บัญชีสมาชิกใหม่จะถูกสร้างขึ้นหรือข้อมูลประจำตัว OAuth จะเชื่อมโยงกับสมาชิกที่มีอยู่
- เซสชันของลูกค้าเริ่มต้นขึ้น -- ลูกค้าได้รับการยืนยันและเซสชันของลูกค้าเริ่มต้นขึ้น
ข้อควรพิจารณาด้านความปลอดภัย
- ข้อมูลรับรองไม่เคยแตะต้องพีซีที่ใช้ร่วมกัน ลูกค้าตรวจสอบสิทธิ์บนอุปกรณ์ส่วนตัวเท่านั้น ไม่มีการป้อนรหัสผ่านหรือโทเค็นบนเครื่องไคลเอนต์
- ประตูการอนุมัติของผู้ดูแลระบบ ทุกคำขอเข้าสู่ระบบ OAuth จะต้องได้รับการอนุมัติโดยผู้ดูแลระบบหรือแคชเชียร์ก่อนที่เซสชันจะเริ่มต้น เพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
- ข้อกำหนดด้านเครดิตที่กำหนดค่าได้ สามารถเปิดหรือปิดใช้งานตัวเลือก "อนุญาตให้เข้าสู่ระบบโดยไม่มีเครดิต" ได้ เพื่อควบคุมว่าลูกค้าจะต้องมียอดคงเหลือเป็นบวกเพื่อเข้าสู่ระบบผ่าน OAuth หรือไม่
การกำหนดค่า
ผู้ให้บริการ OAuth ได้รับการกำหนดค่าใน การตั้งค่า > OAuth ผู้ให้บริการแต่ละรายต้องการข้อมูลรับรองไคลเอ็นต์ของตนเอง (รหัสไคลเอ็นต์และความลับไคลเอ็นต์) ที่ได้รับจากคอนโซลนักพัฒนาซอฟต์แวร์ของผู้ให้บริการ เปิดใช้งานเฉพาะผู้ให้บริการที่คุณต้องการเสนอให้กับลูกค้าของคุณ