HandyCafe Docs
owner it-admin

ورود OAuth

HandyCafe از ورود به سیستم اجتماعی/OAuth برای مشتریانی که از اعطای مجوز دستگاه (RFC 8628) استفاده می‌کنند، پشتیبانی می‌کند. این جریان برای کیوسک ها و محیط های عمومی طراحی شده است که مشتریان نمی توانند به طور ایمن اعتبارنامه ها را در رایانه های شخصی مشترک وارد کنند.

ارائه دهندگان پشتیبانی شده

ارائه دهنده نقطه پایانی
گوگل oauth2.googleapis.com
فیس بوک graph.facebook.com/v21.0
اپل appleid.apple.com
ایکس (توئیتر) api.x.com/2/oauth2
اختلاف discord.com/api/oauth2

هر ارائه دهنده را می توان به صورت جداگانه در تنظیمات > OAuth فعال یا غیرفعال کرد.

جریان احراز هویت

جریان مجوز دستگاه از طریق مراحل زیر انجام می شود:

  1. مشتری ارائه دهنده ای را انتخاب می کند -- در صفحه بیکار مشتری، مشتری روی دکمه ارائه دهنده (به عنوان مثال، Google، Discord) ضربه می زند.
  2. Client درخواست را به سرور ارسال می کند -- مشتری به سرور 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 پیکربندی می شوند. هر ارائه دهنده به اعتبار مشتری خود (شناسه مشتری و رمز مشتری) نیاز دارد که از کنسول توسعه دهنده ارائه دهنده به دست آمده است. فقط ارائه دهندگانی را که می خواهید به مشتریان خود ارائه دهید فعال کنید.