HandyCafe Docs
owner it-admin

OAuth Login

Το HandyCafe υποστηρίζει κοινωνική/OAuth σύνδεση πελατών μέσω του Device Authorization Grant (RFC 8628). Αυτή η ροή είναι σχεδιασμένη για περιβάλλοντα kiosk και δημόσιας χρήσης όπου οι πελάτες δεν μπορούν να εισάγουν με ασφάλεια διαπιστευτήρια σε κοινόχρηστους υπολογιστές.

Υποστηριζόμενοι Πάροχοι

Πάροχος 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

Κάθε πάροχος μπορεί να ενεργοποιηθεί ή απενεργοποιηθεί μεμονωμένα στις Ρυθμίσεις > OAuth.

Ροή Αυθεντικοποίησης

Η ροή εξουσιοδότησης συσκευής ακολουθεί τα παρακάτω βήματα:

  1. Ο πελάτης επιλέγει πάροχο -- στην οθόνη αδράνειας του client, ο πελάτης πατά ένα κουμπί παρόχου (π.χ. Google, Discord).
  2. Ο client στέλνει αίτηση στον server -- ο client ειδοποιεί τον HandyCafe server ότι ξεκίνησε OAuth σύνδεση.
  3. Ο server ζητά device code -- ο server επικοινωνεί με το endpoint εξουσιοδότησης συσκευής του παρόχου και λαμβάνει device code, user code και URI επαλήθευσης.
  4. Ο client εμφανίζει τον κωδικό -- ο client εμφανίζει τον user_code και το verification_uri στον πελάτη, συνήθως ως QR code για εύκολη σάρωση.
  5. Ο πελάτης αυθεντικοποιείται στο τηλέφωνό του -- ο πελάτης σαρώνει τον QR κωδικό με την προσωπική του συσκευή και ολοκληρώνει τη σύνδεση στην ιστοσελίδα του παρόχου.
  6. Ο server κάνει polling για token -- ο server κάνει περιοδικό polling στον πάροχο. Καταστάσεις polling:
    • Pending -- ο πελάτης δεν έχει ολοκληρώσει ακόμα τη σύνδεση.
    • SlowDown -- πολύ συχνό polling, ο server επιβραδύνεται.
    • Success -- η σύνδεση ολοκληρώθηκε, ελήφθη token.
    • Expired -- ο device code έληξε πριν τη σύνδεση.
    • Error -- συνέβη μη αναμενόμενο σφάλμα.
  7. Ο server ανακτά στοιχεία χρήστη -- μετά την επιτυχία, ο server χρησιμοποιεί το token για ανάκτηση προφίλ πελάτη από τον πάροχο, συμπεριλαμβανομένων provider_uid, email, name και avatar_url.
  8. Ο διαχειριστής εγκρίνει ή απορρίπτει -- η αίτηση σύνδεσης εμφανίζεται στη Σελίδα Αιτήσεων. Ένας διαχειριστής ή ταμίας αξιολογεί και εγκρίνει ή απορρίπτει.
  9. Δημιουργία ή σύνδεση μέλους -- αν εγκριθεί, δημιουργείται νέος λογαριασμός μέλους ή η OAuth ταυτότητα συνδέεται με υπάρχον μέλος.
  10. Ξεκινά η συνεδρία client -- ο client λαμβάνει επιβεβαίωση και ξεκινά η συνεδρία.

Θέματα Ασφαλείας

  • Τα διαπιστευτήρια δεν αγγίζουν ποτέ τον κοινόχρηστο υπολογιστή. Οι πελάτες αυθεντικοποιούνται μόνο στις προσωπικές τους συσκευές.
  • Πύλη έγκρισης διαχειριστή. Κάθε OAuth αίτηση σύνδεσης πρέπει να εγκριθεί από διαχειριστή ή ταμία πριν ξεκινήσει η συνεδρία.
  • Ρυθμιζόμενη απαίτηση πιστωτικού. Η επιλογή "επιτρέπεται σύνδεση χωρίς πιστωτικό" μπορεί να ενεργοποιηθεί ή απενεργοποιηθεί, ελέγχοντας αν οι πελάτες χρειάζονται θετικό υπόλοιπο για σύνδεση μέσω OAuth.

Ρύθμιση

Οι πάροχοι OAuth ρυθμίζονται στις Ρυθμίσεις > OAuth. Κάθε πάροχος απαιτεί τα δικά του διαπιστευτήρια πελάτη (Client ID και Client Secret) που λαμβάνονται από την κονσόλα προγραμματιστή του παρόχου. Ενεργοποιήστε μόνο τους παρόχους που θέλετε να προσφέρετε στους πελάτες σας.