HandyCafe Docs
owner it-admin

Πώς να Ρυθμίσετε το OAuth Social Login

Αυτός ο οδηγός σας καθοδηγεί στη διαμόρφωση του social login ώστε οι πελάτες να μπορούν να συνδεθούν στους υπολογιστές πελατών χρησιμοποιώντας τους λογαριασμούς τους Google, Facebook, Apple, X ή Discord. Το HandyCafe χρησιμοποιεί τη ροή Device Authorization Grant (RFC 8628), η οποία είναι σχεδιασμένη για συσκευές χωρίς πλήρη περιηγητή. Οι πελάτες σαρώνουν έναν κωδικό QR με το τηλέφωνό τους για να πιστοποιηθούν.

Τι Θα Χρειαστείτε

  • Πρόσβαση διαχειριστή στον HandyCafe Server.
  • Ένας λογαριασμός Google Cloud Console (για Google OAuth) ή ισοδύναμη πρόσβαση σε portal προγραμματιστών για άλλους παρόχους.
  • Ο HandyCafe Server να λειτουργεί και να είναι προσβάσιμος στο δίκτυό σας.
  • Τουλάχιστον ένας συνδεδεμένος υπολογιστής πελάτη για να δοκιμάσετε τη ροή σύνδεσης.

Πώς Λειτουργεί το OAuth Device Flow στο HandyCafe

Πριν προχωρήσετε στη ρύθμιση, εδώ είναι μια σύνοψη της ροής:

  1. Ένας πελάτης σε έναν ανενεργό υπολογιστή πελάτη κάνει κλικ στο κουμπί social login (π.χ., "Σύνδεση με Google").
  2. Ο πελάτης στέλνει ένα αίτημα έναρξης OAuth στον server.
  3. Ο server επικοινωνεί με το endpoint εξουσιοδότησης συσκευής του παρόχου και λαμβάνει έναν κωδικό συσκευής, έναν κωδικό χρήστη και μια διεύθυνση URL επαλήθευσης.
  4. Ο πελάτης εμφανίζει έναν κωδικό QR και τον κωδικό χρήστη στην οθόνη αναμονής.
  5. Ο πελάτης σαρώνει τον κωδικό QR με το τηλέφωνό του και πιστοποιείται με τον πάροχο.
  6. Ο server ελέγχει τον πάροχο μέχρι να ολοκληρωθεί η πιστοποίηση.
  7. Ο server δημιουργεί ένα αίτημα σύνδεσης OAuth που εμφανίζεται στη σελίδα Αιτημάτων.
  8. Ένας διαχειριστής ή ταμίας εγκρίνει το αίτημα.
  9. Δημιουργείται ένας νέος λογαριασμός μέλους (ή συνδέεται ένας υπάρχων λογαριασμός) και ο πελάτης συνδέεται.

Πώς να Ρυθμίσετε το Google OAuth

Η Google είναι ο πιο συχνά χρησιμοποιούμενος πάροχος. Αυτή η ενότητα καλύπτει κάθε βήμα από τη δημιουργία του έργου Google Cloud μέχρι τη δοκιμή της πρώτης σύνδεσης.

Μέρος Α: Δημιουργία Διαπιστευτηρίων Google Cloud

  1. Ανοίξτε το Google Cloud Console στη διεύθυνση https://console.cloud.google.com στον περιηγητή σας.
  2. Δημιουργήστε ένα νέο έργο ή επιλέξτε ένα υπάρχον. Ονομάστε το κάτι αναγνωρίσιμο όπως "HandyCafe OAuth."
  3. Μεταβείτε στο APIs & Services > OAuth consent screen.
  4. Επιλέξτε External ως τύπο χρήστη (εκτός αν έχετε οργανισμό Google Workspace και θέλετε μόνο εσωτερική χρήση).
  5. Συμπληρώστε τα απαιτούμενα πεδία: Όνομα εφαρμογής ("Το Όνομα του Καφέ σας"), Email υποστήριξης χρήστη και Email επικοινωνίας προγραμματιστή.
  6. Κάντε κλικ στο Save and Continue μέσω των ενοτήτων Scopes και Test Users. Δεν χρειάζεται να προσθέσετε ειδικά scopes. Τα προεπιλεγμένα scopes email και προφίλ είναι επαρκή.
  7. Μεταβείτε στο APIs & Services > Credentials.
  8. Κάντε κλικ στο Create Credentials > OAuth client ID.
  9. Για τον τύπο εφαρμογής, επιλέξτε TVs and Limited Input devices. Αυτό είναι κρίσιμο. Το HandyCafe χρησιμοποιεί τη ροή εξουσιοδότησης συσκευής, η οποία απαιτεί αυτόν τον συγκεκριμένο τύπο πελάτη.
  10. Εισάγετε ένα όνομα για τον πελάτη (π.χ., "HandyCafe Device Flow").
  11. Κάντε κλικ στο Create.
  12. Αντιγράψτε το Client ID και το Client Secret από το παράθυρο επιβεβαίωσης. Αποθηκεύστε τα με ασφάλεια. Θα χρειαστείτε και τις δύο τιμές στην επόμενη ενότητα.

Μέρος Β: Διαμόρφωση του HandyCafe Server

  1. Ανοίξτε την εφαρμογή HandyCafe Server.
  2. Μεταβείτε στις Ρυθμίσεις χρησιμοποιώντας το εικονίδιο γραναζιού στην αριστερή πλαϊνή μπάρα.
  3. Επιλέξτε την καρτέλα OAuth.
  4. Ενεργοποιήστε την εναλλαγή OAuth στην κορυφή της σελίδας. Αυτό ενεργοποιεί παγκοσμίως το social login σε όλους τους υπολογιστές πελατών.
  5. Εντοπίστε τη σειρά παρόχου Google στη λίστα παρόχων.
  6. Ενεργοποιήστε την εναλλαγή Google για να ενεργοποιήσετε αυτόν τον πάροχο.
  7. Επικολλήστε το Client ID από το βήμα 12 στο πεδίο Client ID.
  8. Επικολλήστε το Client Secret από το βήμα 12 στο πεδίο Client Secret.
  9. Κάντε κλικ στο Αποθήκευση για να εφαρμόσετε τη διαμόρφωση.

Αναμενόμενο αποτέλεσμα: Η καρτέλα OAuth δείχνει ότι η Google είναι ενεργοποιημένη με τα διαπιστευτήριά σας συμπληρωμένα. Οι ρυθμίσεις προωθούνται σε όλους τους συνδεδεμένους πελάτες.

Μέρος Γ: Δοκιμή της Ροής Σύνδεσης

  1. Πηγαίνετε σε έναν συνδεδεμένο υπολογιστή πελάτη. Η οθόνη αναμονής θα πρέπει τώρα να δείχνει μια ενότητα social login με ένα κουμπί σύνδεσης Google.
  2. Κάντε κλικ στο κουμπί σύνδεσης Google στην οθόνη αναμονής του πελάτη.
  3. Ο πελάτης εμφανίζει έναν κωδικό QR και έναν κωδικό χρήστη (μια σύντομη αλφαριθμητική συμβολοσειρά).
  4. Σαρώστε τον κωδικό QR με το τηλέφωνό σας. Ανοίγει η σελίδα επαλήθευσης συσκευής της Google.
  5. Συνδεθείτε με έναν λογαριασμό Google και εισάγετε τον κωδικό χρήστη όταν σας ζητηθεί.
  6. Εξουσιοδοτήστε την εφαρμογή.

Αναμενόμενο αποτέλεσμα: Στον server, ακούγεται ένας ήχος ειδοποίησης και μια νέα εγγραφή εμφανίζεται στη σελίδα Αιτημάτων. Το αίτημα δείχνει το όνομα λογαριασμού Google, τη διεύθυνση email και τον υπολογιστή πελάτη που ξεκίνησε τη σύνδεση.


Πώς να Εγκρίνετε ένα Αίτημα Σύνδεσης

Κάθε σύνδεση OAuth δημιουργεί ένα αίτημα που πρέπει να εγκριθεί από έναν διαχειριστή ή ταμία πριν ο πελάτης αποκτήσει πρόσβαση.

  1. Όταν φτάσει ένα αίτημα σύνδεσης, ακούγεται ένας ήχος ειδοποίησης στον server και εμφανίζεται ένα σήμα στη σελίδα Αιτημάτων στην πλαϊνή μπάρα.
  2. Μεταβείτε στη σελίδα Αιτημάτων.
  3. Το εκκρεμές αίτημα δείχνει:
    • Όνομα παρόχου (π.χ., Google).
    • Όνομα εμφάνισης από τον πάροχο (π.χ., "Γιάννης Παπαδόπουλος").
    • Διεύθυνση email (π.χ., "giannis@example.com").
    • Ο υπολογιστής πελάτη που ξεκίνησε το αίτημα (όνομα υπολογιστή ή όνομα εμφάνισης).
    • Χρονική σήμανση.
  4. Ελέγξτε τις λεπτομέρειες του αιτήματος. Επαληθεύστε ότι το άτομο στον υπολογιστή πελάτη ταιριάζει με τις πληροφορίες λογαριασμού.
  5. Κάντε κλικ στο Έγκριση για να αποδεχτείτε το αίτημα.

Αναμενόμενο αποτέλεσμα: Αν δεν υπάρχει συνδεδεμένος λογαριασμός μέλους με αυτή την ταυτότητα OAuth, δημιουργείται αυτόματα ένας νέος λογαριασμός μέλους. Χρησιμοποιούνται το όνομα εμφάνισης και το email από τον πάροχο. Ο πελάτης συνδέεται και ο υπολογιστής πελάτη μεταβαίνει από την οθόνη αναμονής στη Σελίδα Online. Αν υπήρχε ήδη συνδεδεμένος λογαριασμός μέλους με αυτή την ταυτότητα OAuth, ο υπάρχων μέλος συνδέεται απευθείας.

Συμβουλή: Αν το αίτημα σύνδεσης φαίνεται ύποπτο (π.χ., ο υπολογιστής είναι ακατοίκητος ή το αίτημα φαίνεται αυτοματοποιημένο), κάντε κλικ στο Απόρριψη. Ο πελάτης θα δει ένα μήνυμα "Πρόσβαση απορρίφθηκε" και μπορεί να προσπαθήσει ξανά.


Πώς να Ρυθμίσετε το Facebook OAuth

  1. Ανοίξτε το Facebook Developer Portal στη διεύθυνση https://developers.facebook.com .
  2. Δημιουργήστε μια νέα εφαρμογή. Επιλέξτε τον τύπο εφαρμογής Consumer.
  3. Μεταβείτε στη σελίδα Settings > Basic της εφαρμογής. Σημειώστε το App ID και το App Secret.
  4. Μεταβείτε στο Add Product και προσθέστε το Facebook Login for Devices.
  5. Στις ρυθμίσεις του Facebook Login for Devices, προσθέστε τις διευθύνσεις URI ανακατεύθυνσης αν απαιτείται από το portal.
  6. Ανοίξτε τον HandyCafe Server και μεταβείτε στις Ρυθμίσεις > OAuth.
  7. Εντοπίστε τη σειρά παρόχου Facebook.
  8. Ενεργοποιήστε την εναλλαγή Facebook.
  9. Επικολλήστε το App ID στο πεδίο Client ID.
  10. Επικολλήστε το App Secret στο πεδίο Client Secret.
  11. Κάντε κλικ στο Αποθήκευση.

Αναμενόμενο αποτέλεσμα: Το Facebook εμφανίζεται ως ενεργοποιημένος πάροχος. Οι οθόνες αναμονής πελατών δείχνουν ένα κουμπί σύνδεσης Facebook δίπλα σε οποιονδήποτε άλλο ενεργοποιημένο πάροχο.


Πώς να Ρυθμίσετε το Discord OAuth

  1. Ανοίξτε το Discord Developer Portal στη διεύθυνση https://discord.com/developers/applications .
  2. Δημιουργήστε μια νέα εφαρμογή. Ονομάστε την με το όνομα του καφέ σας.
  3. Μεταβείτε στην ενότητα OAuth2 στην αριστερή πλαϊνή μπάρα.
  4. Αντιγράψτε το Client ID και δημιουργήστε ένα Client Secret. Αποθηκεύστε το μυστικό με ασφάλεια καθώς το Discord το δείχνει μόνο μία φορά.
  5. Ανοίξτε τον HandyCafe Server και μεταβείτε στις Ρυθμίσεις > OAuth.
  6. Εντοπίστε τη σειρά παρόχου Discord (είναι απενεργοποιημένη από προεπιλογή).
  7. Ενεργοποιήστε την εναλλαγή Discord.
  8. Επικολλήστε το Client ID στο πεδίο Client ID.
  9. Επικολλήστε το Client Secret στο πεδίο Client Secret.
  10. Κάντε κλικ στο Αποθήκευση.

Αναμενόμενο αποτέλεσμα: Το Discord είναι πλέον διαθέσιμο ως επιλογή σύνδεσης στις οθόνες αναμονής πελατών.


Πώς να Επιτρέψετε Σύνδεση Χωρίς Πίστωση

Από προεπιλογή, το HandyCafe επιτρέπει στους πελάτες που έχουν πιστοποιηθεί μέσω OAuth να συνδέονται ακόμη και αν δεν έχουν υπόλοιπο πορτοφολιού ή πίστωση χρόνου. Μπορείτε να αλλάξετε αυτή τη συμπεριφορά.

  1. Μεταβείτε στις Ρυθμίσεις > OAuth.
  2. Εντοπίστε την εναλλαγή Επιτρέψτε Σύνδεση Χωρίς Πίστωση.
  3. Αν είναι ενεργοποιημένη (προεπιλογή), οι πελάτες που πιστοποιούνται μέσω OAuth μπορούν να συνδεθούν ανεξάρτητα από το υπόλοιπό τους. Ένας ταμίας μπορεί να ξεκινήσει μια συνεδρία με χρέωση μετά την κατανάλωση.
  4. Αν είναι απενεργοποιημένη, οι πελάτες πρέπει να έχουν είτε υπόλοιπο πορτοφολιού είτε πίστωση χρόνου για να συνδεθούν. Οι πελάτες με μηδενικό υπόλοιπο θα δουν ένα μήνυμα που τους λέει να επισκεφθούν τον ταμία για να φορτίσουν.
  5. Κάντε κλικ στο Αποθήκευση μετά την αλλαγή της εναλλαγής.

Αναμενόμενο αποτέλεσμα: Η συμπεριφορά τίθεται σε ισχύ άμεσα για νέα αιτήματα σύνδεσης. Οι υπάρχουσες συνεδρίες δεν επηρεάζονται.


Πώς να Συνδέσετε μια Ταυτότητα OAuth με έναν Υπάρχοντα Μέλος

Αν ένας πελάτης έχει ήδη λογαριασμό μέλους (δημιουργημένο χειροκίνητα από έναν ταμία) και στη συνέχεια συνδεθεί μέσω OAuth για πρώτη φορά, η διαδικασία έγκρισης μπορεί να συνδέσει την ταυτότητα OAuth με τον υπάρχοντα λογαριασμό του.

  1. Όταν το αίτημα σύνδεσης OAuth φτάσει στη σελίδα Αιτημάτων, ελέγξτε αν το email ταιριάζει με έναν υπάρχοντα μέλος.
  2. Αν το σύστημα ανιχνεύσει αντιστοιχία, το παράθυρο διαλόγου έγκρισης θα προσφέρει να συνδέσει την ταυτότητα OAuth με τον υπάρχοντα μέλος αντί να δημιουργήσει νέο λογαριασμό.
  3. Εγκρίνετε το αίτημα με την επιλογή σύνδεσης επιλεγμένη.

Αναμενόμενο αποτέλεσμα: Ο υπάρχων λογαριασμός μέλους αποκτά σύνδεση OAuth. Οι μελλοντικές συνδέσεις από αυτόν τον πάροχο θα παρακάμπτουν το βήμα έγκρισης και θα συνδέουν τον μέλος απευθείας (μετά την πρώτη έγκριση).


Συνηθισμένα Λάθη που Πρέπει να Αποφύγετε

  • Χρήση λάθος τύπου πελάτη OAuth στο Google Cloud Console. Πρέπει να επιλέξετε "TVs and Limited Input devices" κατά τη δημιουργία του OAuth client ID. Αν επιλέξετε "Web application" ή "Desktop app," η ροή εξουσιοδότησης συσκευής δεν θα λειτουργήσει και ο πελάτης θα αποτύχει να λάβει κωδικό συσκευής.
  • Ξεχνώντας να ενεργοποιήσετε την παγκόσμια εναλλαγή OAuth. Η ενεργοποίηση μεμονωμένων παρόχων δεν είναι αρκετή. Η κύρια εναλλαγή OAuth στην κορυφή της σελίδας ρυθμίσεων OAuth πρέπει επίσης να είναι ενεργοποιημένη.
  • Μη έγκριση αιτημάτων σύνδεσης. Οι συνδέσεις OAuth απαιτούν ρητή έγκριση από τον server. Αν κανείς δεν παρακολουθεί τη σελίδα Αιτημάτων, οι πελάτες θα περιμένουν επ' αόριστον στην οθόνη αναμονής. Σκεφτείτε να αναθέσετε σε έναν ταμία να παρακολουθεί τα αιτήματα κατά τις ώρες αιχμής.
  • Αφήνοντας τους κωδικούς συσκευής να λήξουν. Οι κωδικοί συσκευής έχουν περιορισμένη διάρκεια ζωής (συνήθως 5-10 λεπτά). Αν ο πελάτης καθυστερήσει να σαρώσει τον κωδικό QR και να πιστοποιηθεί, ο κωδικός λήγει και πρέπει να ξεκινήσει από την αρχή. Συμβουλέψτε τους πελάτες να σαρώσουν άμεσα.
  • Επικόλληση διαπιστευτηρίων με επιπλέον κενά. Όταν αντιγράφετε το Client ID ή το Client Secret από την κονσόλα του παρόχου, βεβαιωθείτε ότι δεν περιλαμβάνονται αρχικά ή τελικά κενά. Τα επιπλέον κενά θα προκαλέσουν αποτυχίες πιστοποίησης.
  • Ξεχνώντας να δημοσιεύσετε την εφαρμογή Google OAuth. Οι εφαρμογές Google σε "Testing" mode επιτρέπουν μόνο περιορισμένο αριθμό δοκιμαστικών χρηστών. Για να επιτρέψετε σε οποιονδήποτε πελάτη να συνδεθεί, πρέπει να δημοσιεύσετε την εφαρμογή μέσω της σελίδας OAuth consent screen και να ολοκληρώσετε τυχόν απαιτούμενα βήματα επαλήθευσης.
  • Ανταλλαγή Client ID και Client Secret. Αυτές είναι δύο διαφορετικές τιμές. Το Client ID είναι δημόσιο. Το Client Secret πρέπει να παραμένει εμπιστευτικό. Η ανταλλαγή τους θα προκαλέσει αποτυχίες πιστοποίησης.
  • Μη διαμόρφωση του ονόματος του καφέ. Το όνομα του καφέ από τις ρυθμίσεις του HandyCafe εμφανίζεται στην οθόνη αναμονής του πελάτη κατά τη διάρκεια της ροής OAuth. Ένα κενό ή προεπιλεγμένο όνομα φαίνεται αντιεπαγγελματικό. Ορίστε το όνομα του καφέ σας στις Ρυθμίσεις > Γενικά πριν ενεργοποιήσετε το OAuth.