OAuth Sosyal Giriş Nasıl Kurulur
Bu kılavuz, müşterilerin Google, Facebook, Apple, X veya Discord hesaplarını kullanarak istemci bilgisayarlara giriş yapabilmesi için sosyal girişin nasıl yapılandırılacağını açıklar. HandyCafe, tam tarayıcıya sahip olmayan cihazlar için tasarlanmış Cihaz Yetkilendirme Akışı'nı (RFC 8628) kullanır. Müşteriler, kimlik doğrulamak için telefonlarıyla bir QR kodu tarar.
İhtiyacınız Olanlar
- HandyCafe Sunucusu'na yönetici erişimi.
- Google OAuth için bir Google Cloud Console hesabı veya diğer sağlayıcılar için eşdeğer geliştirici portalı erişimi.
- Ağınızda çalışan ve erişilebilir durumda olan HandyCafe Sunucusu.
- Giriş akışını test etmek için en az bir bağlı istemci bilgisayar.
HandyCafe'de OAuth Cihaz Akışı Nasıl Çalışır
Kuruluma başlamadan önce, işte akışın bir özeti:
- Boşta olan bir istemci bilgisayardaki müşteri, sosyal giriş butonuna tıklar (örneğin, "Google ile Giriş Yap").
- İstemci, sunucuya bir OAuth başlangıç isteği gönderir.
- Sunucu, sağlayıcının cihaz yetkilendirme noktasına başvurur ve bir cihaz kodu, bir kullanıcı kodu ve bir doğrulama URL'si alır.
- İstemci, boşta ekranında bir QR kodu ve kullanıcı kodu gösterir.
- Müşteri, telefonuyla QR kodunu tarar ve sağlayıcı ile kimlik doğrulaması yapar.
- Sunucu, kimlik doğrulama tamamlanana kadar sağlayıcıyı sorgular.
- Sunucu, İstekler sayfasında görünen bir OAuth Giriş İsteği oluşturur.
- Bir yönetici veya kasiyer isteği onaylar.
- Yeni bir üye hesabı oluşturulur (veya mevcut bir hesap bağlanır) ve müşteri giriş yapar.
Google OAuth Nasıl Kurulur
Google en yaygın kullanılan sağlayıcıdır. Bu bölüm, Google Cloud projesi oluşturmadan ilk girişi test etmeye kadar her adımı kapsar.
Bölüm A: Google Cloud Kimlik Bilgilerini Oluşturma
- Tarayıcınızda https://console.cloud.google.com adresinde Google Cloud Console'u açın.
- Yeni bir proje oluşturun veya mevcut bir projeyi seçin. "HandyCafe OAuth" gibi tanınabilir bir ad verin.
- APIs & Services > OAuth consent screen bölümüne gidin.
- Kullanıcı türü olarak External seçin (Google Workspace organizasyonunuz yoksa ve yalnızca dahili istiyorsanız).
- Gerekli alanları doldurun: Uygulama adı ("Kafenizin Adı"), Kullanıcı destek e-postası ve Geliştirici iletişim e-postası.
- Özel kapsamlar eklemenize gerek yoktur. Varsayılan e-posta ve profil kapsamları yeterlidir. Kaydet ve Devam Et'e tıklayın.
- APIs & Services > Credentials bölümüne gidin.
- Create Credentials > OAuth client ID'ye tıklayın.
- Uygulama türü için TVs and Limited Input devices seçin. Bu kritik bir adımdır. HandyCafe, cihaz yetkilendirme akışını kullanır ve bu özel istemci türünü gerektirir.
- İstemci için bir ad girin (örneğin, "HandyCafe Device Flow").
- Oluştur'a tıklayın.
- Onay penceresinden Client ID ve Client Secret'ı kopyalayın. Güvenli bir şekilde saklayın. Her iki değere de bir sonraki bölümde ihtiyacınız olacak.
Bölüm B: HandyCafe Sunucusunu Yapılandırma
- HandyCafe Sunucu uygulamasını açın.
- Sol kenar çubuğundaki dişli simgesini kullanarak Ayarlar bölümüne gidin.
- OAuth sekmesini seçin.
- Sayfanın üst kısmındaki OAuth geçişini etkinleştirin. Bu, tüm istemci bilgisayarlarda sosyal girişi genel olarak etkinleştirir.
- Sağlayıcılar listesinde Google sağlayıcı satırını bulun.
- Bu sağlayıcıyı etkinleştirmek için Google geçişini etkinleştirin.
- adımdan aldığınız Client ID'yi Client ID alanına yapıştırın.
- adımdan aldığınız Client Secret'ı Client Secret alanına yapıştırın.
- Yapılandırmayı uygulamak için Kaydet'e tıklayın.
Beklenen sonuç: OAuth sekmesi, kimlik bilgileriniz doldurulmuş olarak Google'ın etkin olduğunu gösterir. Ayarlar, bağlı tüm istemcilere iletilir.
Bölüm C: Giriş Akışını Test Etme
- Bağlı bir istemci bilgisayara gidin. Boşta ekranında artık sosyal giriş bölümü ve bir Google giriş butonu görünmelidir.
- İstemci boşta ekranında Google giriş butonuna tıklayın.
- İstemci bir QR kodu ve bir kullanıcı kodu (kısa bir alfanümerik dizi) gösterir.
- Telefonunuzla QR kodunu tarayın. Google'ın cihaz doğrulama sayfası açılır.
- Bir Google hesabı ile giriş yapın ve istendiğinde kullanıcı kodunu girin.
- Uygulamayı yetkilendirin.
Beklenen sonuç: Sunucuda bir bildirim sesi çalar ve İstekler sayfasında yeni bir giriş görünür. İstek, Google hesap adını, e-posta adresini ve giriş başlatan istemci bilgisayarını gösterir.
Giriş İsteği Nasıl Onaylanır
Her OAuth girişi, müşterinin erişim kazanabilmesi için bir yönetici veya kasiyer tarafından onaylanması gereken bir istek oluşturur.
- Bir giriş isteği geldiğinde, sunucuda bir bildirim sesi çalar ve kenar çubuğundaki İstekler sayfası simgesinde bir rozet görünür.
- İstekler sayfasına gidin.
- Bekleyen istek şunları gösterir:
- Sağlayıcı adı (örneğin, Google).
- Sağlayıcıdan gelen görünen ad (örneğin, "John Smith").
- E-posta adresi (örneğin, "john@example.com").
- İsteği başlatan istemci bilgisayar (ana bilgisayar adı veya görünen ad).
- Zaman damgası.
- İstek ayrıntılarını inceleyin. İstemci bilgisayardaki kişinin hesap bilgileriyle eşleştiğini doğrulayın.
- İsteği kabul etmek için Onayla'ya tıklayın.
Beklenen sonuç: Bu OAuth kimliğiyle bağlantılı mevcut bir üye hesabı yoksa, otomatik olarak yeni bir üye hesabı oluşturulur. Sağlayıcıdan gelen görünen ad ve e-posta kullanılır. Müşteri giriş yapar ve istemci bilgisayar boşta ekrandan Çevrimiçi Sayfa'ya geçer. Bu OAuth kimliğiyle daha önce bağlantılı bir üye hesabı varsa, mevcut üye doğrudan giriş yapar.
İpucu: Giriş isteği şüpheli görünüyorsa (örneğin, bilgisayar boşta veya istek otomatik görünüyorsa), bunun yerine Reddet'e tıklayın. Müşteri "Erişim reddedildi" mesajı görecek ve tekrar deneyebilir.
Facebook OAuth Nasıl Kurulur
- https://developers.facebook.com adresinde Facebook Geliştirici Portalı'nı açın.
- Yeni bir uygulama oluşturun. Tüketici uygulama türünü seçin.
- Uygulamanın Ayarlar > Temel sayfasına gidin. Uygulama Kimliği ve Uygulama Gizli Anahtarı'nı not edin.
- Ürün Ekle'ye gidin ve Cihazlar için Facebook Girişi ekleyin.
- Cihazlar için Facebook Girişi ayarlarında, portal tarafından istenirse yönlendirme URI'larınızı ekleyin.
- HandyCafe Sunucusunu açın ve Ayarlar > OAuth bölümüne gidin.
- Facebook sağlayıcı satırını bulun.
- Facebook geçişini etkinleştirin.
- Uygulama Kimliği'ni Client ID alanına yapıştırın.
- Uygulama Gizli Anahtarı'nı Client Secret alanına yapıştırın.
- Kaydet'e tıklayın.
Beklenen sonuç: Facebook etkin bir sağlayıcı olarak görünür. İstemci boşta ekranlarında diğer etkin sağlayıcıların yanında bir Facebook giriş butonu gösterilir.
Discord OAuth Nasıl Kurulur
- https://discord.com/developers/applications adresinde Discord Geliştirici Portalı'nı açın.
- Yeni bir uygulama oluşturun. Kafenizin adını verin.
- Sol kenar çubuğundaki OAuth2 bölümüne gidin.
- Client ID'yi kopyalayın ve bir Client Secret oluşturun. Gizli anahtarı güvenli bir şekilde saklayın çünkü Discord bunu yalnızca bir kez gösterir.
- HandyCafe Sunucusunu açın ve Ayarlar > OAuth bölümüne gidin.
- Discord sağlayıcı satırını bulun (varsayılan olarak devre dışıdır).
- Discord geçişini etkinleştirin.
- Client ID'yi Client ID alanına yapıştırın.
- Client Secret'ı Client Secret alanına yapıştırın.
- Kaydet'e tıklayın.
Beklenen sonuç: Discord artık istemci boşta ekranlarında bir giriş seçeneği olarak mevcuttur.
Kreditsiz Girişe İzin Verme
Varsayılan olarak, HandyCafe, OAuth ile kimlik doğrulaması yapan müşterilerin cüzdan bakiyesi veya zaman kredisi olmasa bile giriş yapmasına izin verir. Bu davranışı değiştirebilirsiniz.
- Ayarlar > OAuth bölümüne gidin.
- Kreditsiz Girişe İzin Ver geçişini bulun.
- Etkinse (varsayılan), OAuth ile kimlik doğrulaması yapan müşteriler bakiyelerine bakılmaksızın giriş yapabilir. Bir kasiyer onlar için postpaid bir oturum başlatabilir.
- Devre dışı bırakılırsa, müşterilerin giriş yapabilmesi için ya cüzdan bakiyesi ya da zaman kredisi olması gerekir. Sıfır bakiyeye sahip müşteriler, bakiyelerini artırmak için kasiyere gitmeleri gerektiğini belirten bir mesaj göreceklerdir.
- Geçişi değiştirdikten sonra Kaydet'e tıklayın.
Beklenen sonuç: Davranış, yeni giriş istekleri için hemen etkili olur. Mevcut oturumlar etkilenmez.
Bir OAuth Kimliğini Mevcut Bir Üyeye Bağlama
Bir müşteri zaten bir üye hesabına sahipse (bir kasiyer tarafından manuel olarak oluşturulmuş) ve ardından ilk kez OAuth ile giriş yaparsa, onay süreci OAuth kimliğini mevcut hesaplarına bağlayabilir.
- OAuth giriş isteği İstekler sayfasına geldiğinde, e-posta adresinin mevcut bir üye ile eşleşip eşleşmediğini kontrol edin.
- Sistem bir eşleşme tespit ederse, onay penceresi yeni bir hesap oluşturmak yerine OAuth kimliğini mevcut üyeye bağlamayı teklif eder.
- Bağlantı seçeneği seçili olarak isteği onaylayın.
Beklenen sonuç: Mevcut üye hesabı bir OAuth bağlantısı kazanır. Bu sağlayıcıdan gelecekteki girişler, ilk onaydan sonra onay adımını atlayarak doğrudan üyenin giriş yapmasını sağlar.
Kaçınılması Gereken Yaygın Hatalar
- Google Cloud Console'da yanlış OAuth istemci türünü kullanmak. OAuth istemci kimliği oluştururken "TVs and Limited Input devices" seçmelisiniz. "Web application" veya "Desktop app" seçerseniz, cihaz yetkilendirme akışı çalışmaz ve istemci cihaz kodu alamaz.
- Genel OAuth geçişini etkinleştirmeyi unutmak. Bireysel sağlayıcıları etkinleştirmek yeterli değildir. OAuth ayarları sayfasının üst kısmındaki ana OAuth geçişi de açık olmalıdır.
- Giriş isteklerini onaylamamak. OAuth girişleri sunucudan açık onay gerektirir. İstekler sayfasını kimse izlemezse, müşteriler boşta ekranda süresiz bekler. Yoğun saatlerde istekleri izlemek için bir kasiyer atamayı düşünün.
- Cihaz kodlarının süresinin dolmasına izin vermek. Cihaz kodlarının sınırlı bir ömrü vardır (genellikle 5-10 dakika). Müşteri QR kodunu taramak ve kimlik doğrulamak için çok uzun süre beklerse, kodun süresi dolar ve yeniden başlamaları gerekir. Müşterilere hızlı tarama yapmalarını önerin.
- Kimlik bilgilerini fazladan boşlukla yapıştırmak. Sağlayıcı konsolundan Client ID veya Client Secret kopyalarken, başında veya sonunda boşluk olmadığından emin olun. Fazladan boşluk, kimlik doğrulama hatalarına neden olur.
- Google OAuth uygulamasını yayınlamayı unutmak. "Testing" modundaki Google uygulamaları yalnızca sınırlı sayıda test kullanıcısına izin verir. Herhangi bir müşterinin giriş yapabilmesi için uygulamayı OAuth onay ekranı sayfasından yayınlamalı ve gerekli doğrulama adımlarını tamamlamalısınız.
- Client ID ve Client Secret'ı karıştırmak. Bunlar iki farklı değerdir. Client ID herkese açıktır. Client Secret gizli tutulmalıdır. Bunları karıştırmak kimlik doğrulama hatalarına neden olur.
- Kafe adını yapılandırmamak. HandyCafe ayarlarınızdan gelen kafe adı, OAuth akışı sırasında istemci boşta ekranında gösterilir. Boş veya varsayılan bir ad profesyonel görünmez. OAuth'u etkinleştirmeden önce Ayarlar > Genel'de kafe adınızı ayarlayın.