Jak skonfigurować logowanie społecznościowe OAuth
Ten przewodnik przeprowadzi Cię przez konfigurację logowania społecznościowego, aby klienci mogli logować się na komputerach klienckich za pomocą swoich kont Google, Facebook, Apple, X lub Discord. HandyCafe używa przepływu Device Authorization Grant (RFC 8628), zaprojektowanego dla urządzeń bez pełnej przeglądarki. Klienci skanują kod QR telefonem aby się uwierzytelnić.
Czego będziesz potrzebować
- Dostęp administratora do HandyCafe Server.
- Konto Google Cloud Console (dla OAuth Google) lub równoważny dostęp do portalu developerskiego dla innych dostawców.
- Uruchomiony HandyCafe Server dostępny w sieci.
- Co najmniej jeden podłączony komputer kliencki do testowania przepływu logowania.
Jak działa przepływ OAuth w HandyCafe
- Klient na bezczynnym komputerze klienckimi klika przycisk logowania społecznościowego (np. "Zaloguj się przez Google").
- Klient wysyła żądanie startu OAuth do serwera.
- Serwer kontaktuje punkt autoryzacji urządzeń dostawcy i otrzymuje kod urządzenia, kod użytkownika i URL weryfikacji.
- Klient wyświetla kod QR i kod użytkownika na ekranie bezczynności.
- Klient skanuje kod QR telefonem i uwierzytelnia się u dostawcy.
- Serwer odpytuje dostawcę do momentu ukończenia uwierzytelniania.
- Serwer tworzy Żądanie logowania OAuth widoczne na stronie Żądań.
- Administrator lub kasjer zatwierdza żądanie.
- Tworzone jest nowe konto członkowskie (lub istniejące konto jest wiązane) i klient jest logowany.
Jak skonfigurować Google OAuth
Część A: Tworzenie poświadczeń Google Cloud
- Otwórz Google Cloud Console pod adresem https://console.cloud.google.com w przeglądarce.
- Utwórz nowy projekt lub wybierz istniejący. Nazwij go rozpoznawalnie np. "HandyCafe OAuth".
- Przejdź do APIs & Services > OAuth consent screen.
- Wybierz External jako typ użytkownika.
- Wypełnij wymagane pola: Nazwa aplikacji ("Nazwa Twojej Kafejki"), E-mail wsparcia użytkowników i E-mail kontaktowy dewelopera.
- Kliknij Save and Continue przez sekcje Scopes i Test Users. Nie musisz dodawać specjalnych zakresów. Domyślne zakresy email i profile są wystarczające.
- Przejdź do APIs & Services > Credentials.
- Kliknij Create Credentials > OAuth client ID.
- Jako typ aplikacji wybierz TVs and Limited Input devices. To jest krytyczne. HandyCafe używa przepływu device authorization grant, który wymaga tego konkretnego typu klienta.
- Wpisz nazwę klienta (np. "HandyCafe Device Flow").
- Kliknij Create.
- Skopiuj Client ID i Client Secret z okna potwierdzenia. Przechowuj je bezpiecznie.
Część B: Konfiguracja HandyCafe Server
- Otwórz aplikację HandyCafe Server.
- Przejdź do Ustawienia w lewym pasku bocznym.
- Wybierz zakładkę OAuth.
- Włącz przełącznik OAuth u góry strony. Globalnie włącza to logowanie społecznościowe na wszystkich komputerach klienckich.
- Znajdź wiersz dostawcy Google na liście dostawców.
- Włącz przełącznik Google.
- Wklej Client ID w pole Client ID.
- Wklej Client Secret w pole Client Secret.
- Kliknij Zapisz aby zastosować konfigurację.
Część C: Testowanie przepływu logowania
- Przejdź do podłączonego komputera klienckiego. Ekran bezczynności powinien teraz wyświetlać sekcję logowania społecznościowego z przyciskiem Google.
- Kliknij przycisk logowania Google na ekranie bezczynności klienta.
- Klient wyświetla kod QR i kod użytkownika.
- Zeskanuj kod QR telefonem. Otwiera stronę weryfikacji urządzenia Google.
- Zaloguj się kontem Google i wpisz kod użytkownika gdy zostaniesz poproszony.
- Autoryzuj aplikację.
Oczekiwany rezultat: Na serwerze odtwarza się dźwięk powiadomienia i nowy wpis pojawia się na stronie Żądań.
Jak zatwierdzić żądanie logowania
Każde logowanie OAuth generuje żądanie wymagające zatwierdzenia przez administratora lub kasjera.
- Gdy nadejdzie żądanie logowania, na serwerze odtwarza się dźwięk powiadomienia i znaczek pojawia się na ikonie strony Żądań.
- Przejdź do strony Żądania.
- Oczekujące żądanie pokazuje: nazwę dostawcy (np. Google), nazwę wyświetlaną z dostawcy, adres e-mail, komputer kliencki który zainicjował żądanie i znacznik czasu.
- Przejrzyj szczegóły żądania. Sprawdź czy osoba przy komputerze klienckim odpowiada informacjom o koncie.
- Kliknij Zatwierdź aby zaakceptować żądanie.
Oczekiwany rezultat: Jeśli żadne istniejące konto członkowskie nie jest powiązane z tą tożsamością OAuth, automatycznie tworzone jest nowe konto. Klient jest logowany i komputer kliencki przechodzi z ekranu bezczynności na Online Page.
Jak skonfigurować Facebook OAuth
- Otwórz Facebook Developer Portal pod adresem https://developers.facebook.com .
- Utwórz nową aplikację. Wybierz typ Consumer.
- Na stronie Settings > Basic aplikacji zanotuj App ID i App Secret.
- Przejdź do Add Product i dodaj Facebook Login for Devices.
- Otwórz HandyCafe Server i przejdź do Ustawienia > OAuth.
- Znajdź wiersz dostawcy Facebook.
- Włącz przełącznik Facebook.
- Wklej App ID w pole Client ID.
- Wklej App Secret w pole Client Secret.
- Kliknij Zapisz.
Jak skonfigurować Discord OAuth
- Otwórz Discord Developer Portal pod adresem https://discord.com/developers/applications .
- Utwórz nową aplikację. Nazwij ją od swojej kafejki.
- Przejdź do sekcji OAuth2 w lewym pasku bocznym.
- Skopiuj Client ID i wygeneruj Client Secret. Przechowuj secret bezpiecznie ponieważ Discord wyświetla go tylko raz.
- Otwórz HandyCafe Server i przejdź do Ustawienia > OAuth.
- Znajdź wiersz dostawcy Discord.
- Włącz przełącznik Discord.
- Wklej Client ID w pole Client ID.
- Wklej Client Secret w pole Client Secret.
- Kliknij Zapisz.
Typowe błędy do uniknięcia
- Użycie niewłaściwego typu klienta OAuth w Google Cloud Console. Musisz wybrać "TVs and Limited Input devices" przy tworzeniu OAuth client ID. Jeśli wybierzesz "Web application" lub "Desktop app", przepływ device authorization nie będzie działać.
- Zapomnienie o włączeniu globalnego przełącznika OAuth. Włączenie poszczególnych dostawców nie wystarczy. Główny przełącznik OAuth u góry strony ustawień OAuth również musi być włączony.
- Nie zatwierdzanie żądań logowania. Logowania OAuth wymagają jawnego zatwierdzenia z serwera. Jeśli nikt nie monitoruje strony Żądań, klienci będą czekać bezterminowo na ekranie bezczynności.
- Wklejanie poświadczeń z dodatkowymi spacjami. Przy kopiowaniu Client ID lub Client Secret z konsoli dostawcy upewnij się, że nie ma wiodących ani końcowych spacji. Dodatkowe spacje spowodują niepowodzenia uwierzytelniania.
- Zapomnienie o opublikowaniu aplikacji Google OAuth. Aplikacje Google w trybie "Testing" pozwalają tylko na ograniczoną liczbę użytkowników testowych. Aby pozwolić dowolnemu klientowi na logowanie, musisz opublikować aplikację.
- Mylenie Client ID z Client Secret. To dwie różne wartości. Zamienienie ich spowoduje niepowodzenia uwierzytelniania.