OAuth Girişi
HandyCafe, Cihaz Yetkilendirme İzni (RFC 8628) kullanarak müşteriler için sosyal/OAuth girişini destekler. Bu akış, müşterilerin paylaşılan bilgisayarlarda kimlik bilgilerini güvenle giremeyeceği kiosk ve halka açık ortamlar için tasarlanmıştır.
Desteklenen Sağlayıcılar
| Sağlayıcı | Uçnokta |
|---|---|
| oauth2.googleapis.com | |
| graph.facebook.com/v21.0 | |
| Apple | appleid.apple.com |
| X (Twitter) | api.x.com/2/oauth2 |
| Discord | discord.com/api/oauth2 |
Her sağlayıcı Ayarlar > OAuth bölümünden ayrı olarak etkinleştirip devre dışı bırakılabilir.
Kimlik Doğrulama Akışı
Cihaz yetkilendirme akışı şu adımları izler:
- Müşteri bir sağlayıcı seçer -- istemci boşta ekranında müşteri bir sağlayıcı düğmesine (örneğin Google, Discord) dokunur.
- İstemci sunucuya istek gönderir -- istemci HandyCafe sunucusuna bir OAuth girişinin başlatıldığını bildirir.
- Sunucu cihaz kodu ister -- sunucu seçilen sağlayıcının cihaz yetkilendirme uçnoktasıyla iletişim kurar ve bir cihaz kodu, kullanıcı kodu ve doğrulama URI'si alır.
- İstemci kodu görüntüler -- istemci müşteriye
user_codeveverification_urideğerlerini gösterir. Genellikle kolay tarama için QR kod olarak görüntülenir. - Müşteri telefonundan doğrulanır -- müşteri QR kodu kişisel cihazıyla (telefon veya tablet) tarar ve sağlayıcının web sitesinde kimlik doğrulamasını tamamlar.
- Sunucu belirteç için yoklar -- sunucu periyodik olarak sağlayıcıdan belirteç için yoklama yapar. Yoklama durumları şu şekildedir:
- Bekliyor -- müşteri henüz kimlik doğrulamasını tamamlamadı.
- Yavaşla -- çok sık yoklama yapılıyor; sunucu bekleme süresini artırır.
- Başarılı -- kimlik doğrulama tamamlandı; belirteç alındı.
- Süresi Dolmuş -- cihaz kodunun süresi kimlik doğrulamadan önce doldu.
- Hata -- beklenmedik bir hata oluştu.
- Sunucu kullanıcı bilgisini alır -- başarılı olunca sunucu belirteci kullanarak sağlayıcıdan
provider_uid,email,nameveavatar_urldahil müşteri profilini alır. - Yönetici onaylar veya reddeder -- giriş isteği İstekler Sayfası'nda görünür. Bir yönetici veya kasiyer isteği inceler ve onaylar veya reddeder.
- Üye oluşturulur veya bağlanır -- onaylanırsa yeni bir üye hesabı oluşturulur veya OAuth kimliği mevcut bir üyeye bağlanır.
- İstemci oturumu başlar -- istemci onay alır ve müşterinin oturumu başlar.
Güvenlik Hususları
- Kimlik bilgileri paylaşılan bilgisayara hiç dokunmaz. Müşteriler yalnızca kişisel cihazlarında kimlik doğrulaması yapar. İstemci makineye parola veya belirteç girilmez.
- Yönetici onay kapısı. Her OAuth giriş isteği bir oturum başlamadan önce yönetici veya kasiyer tarafından onaylanmalıdır. Yetkisiz erişimi önler.
- Yapılandırılabilir kredi gereksinimi. Müşterilerin OAuth ile giriş yapmak için pozitif bakiyeye sahip olmasının gerekip gerekmediğini kontrol eden bir "kredisiz girişe izin ver" seçeneği etkinleştirilebilir veya devre dışı bırakılabilir.
Yapılandırma
OAuth sağlayıcıları Ayarlar > OAuth bölümünde yapılandırılır. Her sağlayıcı, sağlayıcının geliştirici konsolundan alınan kendi istemci kimlik bilgilerini (client ID ve client secret) gerektirir. Müşterilerinize sunmak istediğiniz sağlayıcıları etkinleştirin.