Σύνδεση μέσω OAuth
Το HandyCafe υποστηρίζει σύνδεση μέσω κοινωνικών δικτύων/OAuth για πελάτες χρησιμοποιώντας το Device Authorization Grant (RFC 8628). Αυτή η διαδικασία είναι σχεδιασμένη για περιβάλλοντα κιόσκι και δημόσιους χώρους όπου οι πελάτες δεν μπορούν να εισάγουν με ασφάλεια διαπιστευτήρια σε κοινόχρηστους υπολογιστές.
Υποστηριζόμενοι Πάροχοι
| Πάροχος | Endpoint |
|---|---|
| oauth2.googleapis.com | |
| graph.facebook.com/v21.0 | |
| Apple | appleid.apple.com |
| X (Twitter) | api.x.com/2/oauth2 |
| Discord | discord.com/api/oauth2 |
Κάθε πάροχος μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί ξεχωριστά στις Ρυθμίσεις > OAuth.
Διαδικασία Αυθεντικοποίησης
Η διαδικασία εξουσιοδότησης συσκευής προχωρά μέσω των παρακάτω βημάτων:
- Ο πελάτης επιλέγει πάροχο: στην οθόνη αναμονής του πελάτη, ο πελάτης πατάει ένα κουμπί παρόχου (π.χ., Google, Discord).
- Ο πελάτης στέλνει αίτημα στον server: ο πελάτης ενημερώνει τον server του HandyCafe ότι έχει ξεκινήσει μια σύνδεση μέσω OAuth.
- Ο server ζητάει κωδικό συσκευής: ο server επικοινωνεί με το endpoint εξουσιοδότησης συσκευής του επιλεγμένου παρόχου και λαμβάνει έναν κωδικό συσκευής, κωδικό χρήστη και URI επαλήθευσης.
- Ο πελάτης εμφανίζει τον κωδικό: ο πελάτης δείχνει τον
user_codeκαι τοverification_uriστον πελάτη, συνήθως ως QR code για εύκολη σάρωση. - Ο πελάτης αυθεντικοποιείται στο κινητό του: ο πελάτης σαρώνει το QR code με την προσωπική του συσκευή (κινητό ή tablet) και ολοκληρώνει την αυθεντικοποίηση στον ιστότοπο του παρόχου.
- Ο server ελέγχει για token: ο server ελέγχει περιοδικά τον πάροχο για ένα token. Οι καταστάσεις ελέγχου περιλαμβάνουν:
- Pending: ο πελάτης δεν έχει ολοκληρώσει ακόμα την αυθεντικοποίηση.
- SlowDown: πολύ συχνός έλεγχος, ο server μειώνει τη συχνότητα.
- Success: η αυθεντικοποίηση ολοκληρώθηκε, το token ελήφθη.
- Expired: ο κωδικός συσκευής έληξε πριν την αυθεντικοποίηση.
- Error: προέκυψε απρόσμενο σφάλμα.
- Ο server ανακτά πληροφορίες χρήστη: με επιτυχία, ο server χρησιμοποιεί το token για να ανακτήσει το προφίλ του πελάτη από τον πάροχο, συμπεριλαμβανομένων των
provider_uid,email,nameκαιavatar_url. - Ο διαχειριστής εγκρίνει ή απορρίπτει: το αίτημα σύνδεσης εμφανίζεται στη Σελίδα Αιτημάτων. Ένας διαχειριστής ή ταμίας εξετάζει και εγκρίνει ή απορρίπτει το αίτημα.
- Δημιουργία ή σύνδεση μέλους: αν εγκριθεί, δημιουργείται νέος λογαριασμός μέλους ή η ταυτότητα OAuth συνδέεται με υπάρχον μέλος.
- Έναρξη συνεδρίας πελάτη: ο πελάτης λαμβάνει επιβεβαίωση και η συνεδρία του ξεκινά.
Σκέψεις Ασφαλείας
- Τα διαπιστευτήρια δεν αγγίζουν ποτέ τον κοινόχρηστο υπολογιστή. Οι πελάτες αυθεντικοποιούνται μόνο στις προσωπικές τους συσκευές. Κανένας κωδικός πρόσβασης ή token δεν εισάγεται στον υπολογιστή του πελάτη.
- Πύλη έγκρισης διαχειριστή. Κάθε αίτημα σύνδεσης μέσω OAuth πρέπει να εγκριθεί από διαχειριστή ή ταμία πριν ξεκινήσει μια συνεδρία, αποτρέποντας μη εξουσιοδοτημένη πρόσβαση.
- Διαμορφώσιμη απαίτηση πίστωσης. Μια επιλογή "επιτρέψτε σύνδεση χωρίς πίστωση" μπορεί να ενεργοποιηθεί ή να απενεργοποιηθεί, ελέγχοντας αν οι πελάτες χρειάζονται θετικό υπόλοιπο για να συνδεθούν μέσω OAuth.
Διαμόρφωση
Οι πάροχοι OAuth διαμορφώνονται στις Ρυθμίσεις > OAuth. Κάθε πάροχος απαιτεί τα δικά του διαπιστευτήρια πελάτη (client ID και client secret) που λαμβάνονται από την κονσόλα ανάπτυξης του παρόχου. Ενεργοποιήστε μόνο τους παρόχους που θέλετε να προσφέρετε στους πελάτες σας.