HandyCafe Docs
owner it-admin

Đăng nhập OAuth

HandyCafe hỗ trợ đăng nhập xã hội/OAuth cho khách hàng sử dụng Device Authorization Grant (RFC 8628). Quy trình này được thiết kế cho môi trường kiosk và công cộng nơi khách hàng không thể nhập thông tin đăng nhập an toàn trên máy tính dùng chung.

Nhà cung cấp được hỗ trợ

Nhà cung cấp Endpoint
Google oauth2.googleapis.com
Facebook graph.facebook.com/v21.0
Apple appleid.apple.com
X (Twitter) api.x.com/2/oauth2
Discord discord.com/api/oauth2

Mỗi nhà cung cấp có thể được bật hoặc tắt riêng lẻ trong Cài đặt > OAuth.

Quy trình xác thực

Quy trình ủy quyền thiết bị diễn ra qua các bước sau:

  1. Khách hàng chọn nhà cung cấp -- trên màn hình chờ của máy khách, khách hàng nhấn nút nhà cung cấp (ví dụ: Google, Discord).
  2. Máy khách gửi yêu cầu đến máy chủ -- máy khách thông báo cho máy chủ HandyCafe rằng một đăng nhập OAuth đã được khởi tạo.
  3. Máy chủ yêu cầu mã thiết bị -- máy chủ liên hệ với endpoint ủy quyền thiết bị của nhà cung cấp đã chọn và nhận mã thiết bị, mã người dùng và URI xác minh.
  4. Máy khách hiển thị mã -- máy khách hiển thị user_codeverification_uri cho khách hàng, thường được hiển thị dưới dạng mã QR để dễ dàng quét.
  5. Khách hàng xác thực trên điện thoại của họ -- khách hàng quét mã QR bằng thiết bị cá nhân (điện thoại hoặc máy tính bảng) và hoàn tất xác thực trên trang web của nhà cung cấp.
  6. Máy chủ kiểm tra token -- máy chủ định kỳ kiểm tra nhà cung cấp để lấy token. Các trạng thái kiểm tra bao gồm:
    • Pending -- khách hàng chưa hoàn tất xác thực.
    • SlowDown -- kiểm tra quá thường xuyên; máy chủ giảm tần suất.
    • Success -- xác thực hoàn tất; token đã nhận.
    • Expired -- mã thiết bị đã hết hạn trước khi xác thực.
    • Error -- xảy ra lỗi không mong đợi.
  7. Máy chủ lấy thông tin người dùng -- khi thành công, máy chủ sử dụng token để lấy hồ sơ của khách hàng từ nhà cung cấp, bao gồm provider_uid, email, name, và avatar_url.
  8. Quản trị viên phê duyệt hoặc từ chối -- yêu cầu đăng nhập xuất hiện trên Trang Yêu cầu. Quản trị viên hoặc thu ngân xem xét và phê duyệt hoặc từ chối yêu cầu.
  9. Tạo hoặc liên kết thành viên -- nếu được phê duyệt, tài khoản thành viên mới được tạo hoặc danh tính OAuth được liên kết với thành viên hiện có.
  10. Bắt đầu phiên khách hàng -- máy khách nhận xác nhận và phiên của khách hàng bắt đầu.

Cân nhắc về bảo mật

  • Thông tin đăng nhập không bao giờ chạm vào máy tính dùng chung. Khách hàng chỉ xác thực trên thiết bị cá nhân của họ. Không có mật khẩu hoặc token nào được nhập trên máy khách.
  • Cổng phê duyệt của quản trị viên. Mỗi yêu cầu đăng nhập OAuth phải được quản trị viên hoặc thu ngân phê duyệt trước khi phiên bắt đầu, ngăn chặn truy cập trái phép.
  • Yêu cầu tín dụng có thể cấu hình. Tùy chọn "cho phép đăng nhập không cần tín dụng" có thể được bật hoặc tắt, kiểm soát việc khách hàng có cần số dư dương để đăng nhập qua OAuth hay không.

Cấu hình

Các nhà cung cấp OAuth được cấu hình trong Cài đặt > OAuth. Mỗi nhà cung cấp yêu cầu thông tin xác thực khách hàng riêng (client ID và client secret) được lấy từ bảng điều khiển nhà phát triển của nhà cung cấp. Chỉ bật các nhà cung cấp bạn muốn cung cấp cho khách hàng của mình.