HandyCafe Docs
owner it-admin

เข้าสู่ระบบ OAuth

HandyCafe รองรับการเข้าสู่ระบบโซเชียล/OAuth สำหรับลูกค้าที่ใช้ Device Authorization Grant (RFC 8628) โฟลว์นี้ออกแบบมาสำหรับคีออสก์และสภาพแวดล้อมสาธารณะที่ลูกค้าไม่สามารถป้อนข้อมูลประจำตัวบนพีซีที่ใช้ร่วมกันได้อย่างปลอดภัย

ผู้ให้บริการที่รองรับ

ผู้ให้บริการ จุดสิ้นสุด
กูเกิล oauth2.googleapis.com
Facebook graph.facebook.com/v21.0
แอปเปิ้ล appleid.apple.com
X (Twitter) api.x.com/2/oauth2
ไม่ลงรอยกัน discord.com/api/oauth2

ผู้ให้บริการแต่ละรายสามารถเปิดหรือปิดใช้ทีละรายได้ใน การตั้งค่า > OAuth

ขั้นตอนการรับรองความถูกต้อง

ขั้นตอนการอนุญาตอุปกรณ์จะดำเนินการตามขั้นตอนต่อไปนี้:

  1. ลูกค้าเลือกผู้ให้บริการ -- บนหน้าจอไคลเอ็นต์ไม่ได้ใช้งาน ลูกค้าแตะปุ่มผู้ให้บริการ (เช่น Google, Discord)
  2. ไคลเอนต์ส่งคำขอไปยังเซิร์ฟเวอร์ -- ไคลเอนต์แจ้งเซิร์ฟเวอร์ HandyCafe ว่าการเข้าสู่ระบบ OAuth ได้เริ่มต้นแล้ว
  3. เซิร์ฟเวอร์ขอรหัสอุปกรณ์ -- เซิร์ฟเวอร์ติดต่อกับจุดสิ้นสุดการอนุญาตอุปกรณ์ของผู้ให้บริการที่เลือก และรับรหัสอุปกรณ์ รหัสผู้ใช้ และ URI การตรวจสอบ
  4. ไคลเอนต์แสดงโค้ด -- ไคลเอนต์แสดง user_code และ verification_uri ให้กับลูกค้า ซึ่งโดยทั่วไปแล้วจะแสดงผลเป็นโค้ด QR เพื่อให้สแกนได้ง่าย
  5. ลูกค้าตรวจสอบสิทธิ์บนโทรศัพท์ของตน -- ลูกค้าสแกนรหัส QR ด้วยอุปกรณ์ส่วนตัว (โทรศัพท์หรือแท็บเล็ต) และดำเนินการตรวจสอบความถูกต้องบนเว็บไซต์ของผู้ให้บริการให้เสร็จสิ้น
  6. การสำรวจความคิดเห็นของเซิร์ฟเวอร์สำหรับโทเค็น -- เซิร์ฟเวอร์จะสำรวจโทเค็นของผู้ให้บริการเป็นระยะ รัฐโพลประกอบด้วย:
    • รอดำเนินการ -- ลูกค้ายังไม่ผ่านการรับรองความถูกต้อง
    • ช้าลง -- โพลบ่อยเกินไป เซิร์ฟเวอร์ปิดตัวลง
    • สำเร็จ -- การรับรองความถูกต้องเสร็จสมบูรณ์ โทเค็นที่ได้รับ
    • หมดอายุ -- รหัสอุปกรณ์หมดอายุก่อนการตรวจสอบสิทธิ์
    • ข้อผิดพลาด -- เกิดข้อผิดพลาดที่ไม่คาดคิด
  7. เซิร์ฟเวอร์ดึงข้อมูลผู้ใช้ -- เมื่อสำเร็จ เซิร์ฟเวอร์จะใช้โทเค็นเพื่อดึงโปรไฟล์ของลูกค้าจากผู้ให้บริการ รวมถึง provider_uid, email, name และ avatar_url
  8. ผู้ดูแลระบบอนุมัติหรือปฏิเสธ -- คำขอเข้าสู่ระบบจะปรากฏบนหน้าคำขอ ผู้ดูแลระบบหรือแคชเชียร์จะตรวจสอบและอนุมัติหรือปฏิเสธคำขอ
  9. สร้างหรือเชื่อมโยงสมาชิก -- หากได้รับการอนุมัติ บัญชีสมาชิกใหม่จะถูกสร้างขึ้นหรือข้อมูลประจำตัว OAuth จะเชื่อมโยงกับสมาชิกที่มีอยู่
  10. เซสชันของลูกค้าเริ่มต้นขึ้น -- ลูกค้าได้รับการยืนยันและเซสชันของลูกค้าเริ่มต้นขึ้น

ข้อควรพิจารณาด้านความปลอดภัย

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

การกำหนดค่า

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