Πώς να προσθέσετε σύνδεση στην εφαρμογή σας: κωδικοί, magic links, Google και ρόλοι
Για να προσθέσετε σύνδεση στην εφαρμογή σας, επιλέξτε μια μέθοδο (email και κωδικός, magic links, δηλαδή σύνδεσμος σύνδεσης μίας χρήσης που στέλνεται με email, ή «Σύνδεση με Google») και υλοποιήστε την με αξιόπιστη βιβλιοθήκη ταυτοποίησης ή φιλοξενούμενο πάροχο, και όχι από το μηδέν. Μετά αποφασίστε τι επιτρέπεται σε κάθε είδος χρήστη (ρόλοι) και επιβάλετέ το στον server για κάθε σελίδα και κάθε αίτημα API. Οι συνεδρίες πρέπει να χρησιμοποιούν ασφαλή cookies, να λήγουν και να τερματίζονται σωστά κατά την αποσύνδεση.
Αυτός ο οδηγός περνά από κάθε επιλογή και τις λεπτομέρειες που ξεχωρίζουν μια σύνδεση που δουλεύει από μια σύνδεση που είναι και ασφαλής. Για τις βασικές έννοιες, δείτε τι είναι η ταυτοποίηση.
Αποφασίστε πρώτα: χρειάζεται καν σύνδεση;
Η σύνδεση προσθέτει τριβή και ευθύνη. Τη χρειάζεστε όταν:
- Οι χρήστες έχουν ιδιωτικά δεδομένα (κρατήσεις, έγγραφα, τιμολόγια)
- Οι χρήστες μπορούν να αλλάξουν πράγματα που θα δουν άλλοι
- Χρεώνετε για πρόσβαση
- Διαφορετικοί άνθρωποι χρειάζονται διαφορετικά δικαιώματα (ιδιοκτήτης, προσωπικό, πελάτης)
Μπορεί να μην τη χρειάζεστε για ιστότοπο μάρκετινγκ, για έναν δημόσιο κατάλογο ή για φόρμα που απλώς σας στέλνει email. Μια λίστα αναμονής δεν χρειάζεται λογαριασμούς· ένα πεδίο email αρκεί.
Οι τέσσερις συνηθισμένες μέθοδοι σύνδεσης
| Μέθοδος | Πώς λειτουργεί | Υπέρ | Κατά |
|---|---|---|---|
| Email και κωδικός | Ο χρήστης δημιουργεί κωδικό· εσείς αποθηκεύετε ένα hash του | Οικείο, λειτουργεί χωρίς να χρειάζεται ο κωδικός να είναι στο email | Επαναφορές κωδικών, επαναχρησιμοποίηση, διαρροές· πρέπει να αποθηκεύετε κωδικούς με ασφάλεια |
| Magic link | Ο χρήστης βάζει email και πατά σύνδεσμο που του στέλνετε | Δεν υπάρχουν κωδικοί να αποθηκεύσετε ή να ξεχάσουν | Εξαρτάται από την παράδοση email· πιο αργή σύνδεση |
| Κωδικός μίας χρήσης | Ο χρήστης βάζει email και πληκτρολογεί κωδικό 6 ψηφίων | Λειτουργεί όταν οι σύνδεσμοι ανοίγουν σε λάθος browser | Η ίδια εξάρτηση από το email |
| Κοινωνική / OAuth (Google, Apple, GitHub, Microsoft) | Άλλος πάροχος επιβεβαιώνει ποιος είναι ο χρήστης | Η ταχύτερη για τους χρήστες· δεν αποθηκεύετε κωδικό | Οι χρήστες πρέπει να έχουν αυτόν τον λογαριασμό· ρύθμιση στον πάροχο |
Πολλές εφαρμογές συνδυάζουν δύο: η Σύνδεση με Google μαζί με magic links μέσω email είναι δημοφιλές ζευγάρι που καλύπτει τους περισσότερους ανθρώπους χωρίς να αποθηκεύει κωδικούς.
Email και κωδικός
Αν προσφέρετε κωδικούς, αυτά είναι τα αδιαπραγμάτευτα:
- Κάνετε hash τους κωδικούς με αργό αλγόριθμο hashing κωδικών. Η καθοδήγηση του OWASP για αποθήκευση κωδικών προτείνει Argon2id, με scrypt, bcrypt ή PBKDF2 ως εναλλακτικές. Ποτέ μη αποθηκεύετε κωδικούς σε καθαρό κείμενο ή με γρήγορο γενικό hash.
- Οι επαναφορές κωδικών χρησιμοποιούν τυχαίο σύνδεσμο μίας χρήσης που λήγει, στάλμενο στο επαληθευμένο email.
- Μην αποκαλύπτετε ποια email έχουν λογαριασμό. «Αν αυτό το email είναι καταχωρημένο, στείλαμε σύνδεσμο επαναφοράς» είναι καλύτερο από «Δεν βρέθηκε λογαριασμός».
- Περιορίστε τον ρυθμό των προσπαθειών σύνδεσης και επαναφοράς, για να επιβραδύνετε την εικασία κωδικών.
- Επιτρέψτε μεγάλους κωδικούς και διαχειριστές κωδικών· αποφύγετε κανόνες που αναγκάζουν περίεργους συνδυασμούς χαρακτήρων.
Magic links και κωδικοί μίας χρήσης
Ένα magic link είναι σύνδεσμος σύνδεσης που στέλνεται με email στον χρήστη. Με το πάτημα του, συνδέεται. Ένας κωδικός μίας χρήσης είναι η ίδια ιδέα, αλλά πληκτρολογείται αντί να πατηθεί.
- Οι σύνδεσμοι και οι κωδικοί λήγουν γρήγορα και λειτουργούν μία φορά.
- Ο σύνδεσμος πρέπει να συνδέει τον χρήστη στη συσκευή όπου πατήθηκε, και το token δεν πρέπει να μένει σε logs ή εργαλεία analytics.
- Χρειάζεστε αξιόπιστη αποστολή email. Δείτε πώς να στέλνετε emails από την εφαρμογή σας. Δοκιμάστε με Gmail και Outlook, και ελέγξτε τους φακέλους ανεπιθύμητων.
Σύνδεση με Google (και άλλους παρόχους OAuth)
Η «Σύνδεση με Google» χρησιμοποιεί OAuth και OpenID Connect: η Google επιβεβαιώνει ποιος είναι ο χρήστης και λέει στην εφαρμογή σας το email και το όνομά του. Η ρύθμιση, από τον Σεπτέμβριο 2026, γίνεται στην ενότητα Google Auth Platform της Google Cloud Console:
- Δημιουργήστε ή επιλέξτε ένα έργο και συμπληρώστε τη σελίδα Branding: τι βλέπουν οι χρήστες στην οθόνη συναίνεσης (όνομα εφαρμογής, email υποστήριξης, λογότυπο).
- Στη σελίδα Clients, δημιουργήστε πελάτη τύπου «Web application».
- Προσθέστε τις authorized JavaScript origins και τα redirect URIs: τις ακριβείς διευθύνσεις όπου τρέχει η εφαρμογή σας και όπου η Google στέλνει τον χρήστη μετά τη σύνδεση.
- Αποθηκεύστε το client ID και το client secret στα μυστικά της εφαρμογής.
Πράγματα που συχνά πάνε στραβά, σύμφωνα με την τεκμηρίωση OAuth της Google:
redirect_uri_mismatch: η διεύθυνση ανακατεύθυνσης πρέπει να ταιριάζει ακριβώς, συμπεριλαμβανομένων τουhttpέναντιhttps, των κεφαλαίων και της τελικής κάθετου. Προσθέστε μία για τη διεύθυνση προεπισκόπησης και μία για το ζωντανό domain σας.- Απαιτείται HTTPS: τα redirect URIs πρέπει να χρησιμοποιούν HTTPS, εκτός από το
localhostκατά την ανάπτυξη. - Η παράμετρος
stateπρέπει να ελέγχεται κατά την επιστροφή, για προστασία από cross-site request forgery. Οι καλές βιβλιοθήκες το κάνουν για σας.
Αν ζητάτε μόνο βασικές πληροφορίες σύνδεσης (όνομα, email, προφίλ), η Google λέει ότι η επαλήθευση της εφαρμογής δεν είναι υποχρεωτική. Η πρόσβαση στο Gmail, στο Drive ή στο Ημερολόγιο των χρηστών είναι διαφορετική και απαιτεί επαλήθευση.
Να το φτιάξετε μόνοι σας ή να χρησιμοποιήσετε πάροχο;
| Προσέγγιση | Παραδείγματα | Πότε ταιριάζει |
|---|---|---|
| Φιλοξενούμενος πάροχος ταυτοποίησης | Υπηρεσίες που φιλοξενούν σύνδεση, διαχείριση χρηστών και συνεδρίες για εσάς | Θέλετε σύνδεση που δουλεύει γρήγορα με λιγότερη ευθύνη για την ασφάλεια |
| Βιβλιοθήκη ταυτοποίησης μέσα στην εφαρμογή | Βιβλιοθήκες ανοιχτού κώδικα για το framework σας | Θέλετε τους χρήστες στη δική σας βάση και χωρίς χρεώσεις ανά χρήστη |
| Να τα γράψετε μόνοι σας | — | Σχεδόν ποτέ. Υπάρχουν πολλές λεπτομέρειες που είναι εύκολο να χαθούν |
Και οι δύο πρώτες επιλογές είναι λογικές. Οι φιλοξενούμενοι πάροχοι αναλαμβάνουν περισσότερα αλλά προσθέτουν εξάρτηση και μερικές φορές κόστος ανά ενεργό χρήστη· ελέγξτε την τρέχουσα τιμολόγηση στους ιστότοπούς τους. Οι βιβλιοθήκες κρατούν όλα στη βάση σας αλλά αφήνουν περισσότερα για εσάς να ρυθμίσετε σωστά. Όποια κι αν επιλέξετε, ζητήστε από τον AI να τη χρησιμοποιήσει αντί να γράψει λογική κωδικών ή συνεδριών από το μηδέν.
Ρόλοι και δικαιώματα
Η σύνδεση σας λέει ποιος είναι κάποιος. Τα δικαιώματα αποφασίζουν τι μπορεί να κάνει. Κρατήστε το απλό στην αρχή:
| Ρόλος | Τυπικά δικαιώματα |
|---|---|
| Επισκέπτης | Βλέπει τις δημόσιες σελίδες |
| Μέλος / πελάτης | Βλέπει και επεξεργάζεται τις δικές του εγγραφές |
| Προσωπικό | Βλέπει όλες τις εγγραφές της ομάδας ή της επιχείρησής του· δεν αλλάζει ρυθμίσεις ή χρεώσεις |
| Ιδιοκτήτης / διαχειριστής | Τα πάντα, συμπεριλαμβανομένων χρηστών και χρεώσεων |
Κανόνες που μετρούν περισσότερο από τα ονόματα των ρόλων:
- Ελέγχετε στον server, κάθε φορά. Το να κρύψετε ένα κουμπί στη σελίδα δεν εμποδίζει κάποιον να καλέσει το API απευθείας.
- Περιορίστε με βάση τον ιδιοκτήτη. Ένα μέλος που ζητά την «κράτηση 123» πρέπει να την παίρνει μόνο αν είναι δική του.
- Οι χρήστες δεν μπορούν να προαχθούν μόνοι τους. Αγνοήστε πεδία ρόλου που στέλνονται από τον browser σε ενημερώσεις προφίλ.
- Προεπιλογή: καμία πρόσβαση. Οι νέες διαδρομές πρέπει να απαιτούν σύνδεση, εκτός αν αποφασίσετε διαφορετικά.
Δοκιμάστε με δύο λογαριασμούς: συνδεθείτε ως ο ένας, σημειώστε το ID μιας εγγραφής, μετά συνδεθείτε ως ο άλλος και προσπαθήστε να την ανοίξετε. Η λίστα ελέγχου ασφαλείας έχει τον πλήρη έλεγχο.
Ασφάλεια συνεδρίας
Μετά τη σύνδεση, η εφαρμογή θυμάται τον χρήστη με συνεδρία, συνήθως cookie. Η καθοδήγηση του OWASP για τη διαχείριση συνεδριών προτείνει:
- Cookies συνεδρίας με
Secure(μόνο HTTPS),HttpOnly(δεν διαβάζονται από scripts σελίδας) καιSameSite - Νέο ID συνεδρίας κατά τη σύνδεση, και ξανά όταν αλλάζουν τα προνόμια
- Χρονικό όριο αδράνειας και μέγιστη απόλυτη διάρκεια, που επιβάλλονται στον server
- Αποσύνδεση που τερματίζει τη συνεδρία στον server, και όχι μόνο διαγράφει το cookie
- Οι συνεδρίες ακυρώνονται όταν ο χρήστης αλλάζει κωδικό
Η αποθήκευση tokens σύνδεσης στο local storage του browser είναι συνηθισμένη σε σεμινάρια, αλλά τα εκθέτει σε κάθε script που τρέχει στη σελίδα· τα ασφαλή cookies είναι συνήθως καλύτερη προεπιλογή για εφαρμογές ιστού.
Ένα prompt που καλύπτει τα βασικά
Πρόσθεσε λογαριασμούς χρηστών σε αυτή την εφαρμογή. Οι χρήστες μπορούν να εγγραφούν και να συνδεθούν με email και κωδικό, ή με Google. Χρησιμοποίησε [βιβλιοθήκη ή πάροχο] αντί για δικό μας κώδικα ταυτοποίησης. Κάνε hash τους κωδικούς με Argon2id ή bcrypt. Πρόσθεσε επαναφορά κωδικού με email και σύνδεσμο μίας χρήσης που λήγει σε μία ώρα. Κράτα τις συνεδρίες σε ασφαλή cookies HttpOnly. Προστάτεψε το /dashboard και κάθε διαδρομή /api ώστε να τις χρησιμοποιούν μόνο συνδεδεμένοι χρήστες, και βεβαιώσου ότι οι χρήστες βλέπουν μόνο τα δικά τους έργα. Πρόσθεσε ρόλο «admin» που βλέπει όλους τους χρήστες· μόνο οι διαχειριστές μπορούν να φτάσουν στο /admin, ελεγμένο στον server.
Μετά δοκιμάστε: εγγραφή, αποσύνδεση, σύνδεση, επαναφορά κωδικού, άνοιγμα ιδιωτικής διεύθυνσης χωρίς σύνδεση, και δοκιμή της εγγραφής άλλου χρήστη.
Συχνά λάθη στη σύνδεση που φτιάχνεται με AI
- Προστασία μόνο στη σελίδα. Η σελίδα ανακατευθύνει τους μη συνδεδεμένους χρήστες, αλλά το API επιστρέφει δεδομένα σε όλους.
- Μυστικά στον browser. Τα client secrets του OAuth και τα κλειδιά διαχείρισης του παρόχου ταυτοποίησης ανήκουν στον server.
- Ανάμεικτα URLs προεπισκόπησης και ζωντανού. Το redirect URI της Google ή ο σύνδεσμος επαναφοράς στο email δείχνει στην προεπισκόπηση, οπότε η σύνδεση σπάει μετά τη δημοσίευση.
- Χωρίς επαλήθευση email. Οποιοσδήποτε μπορεί να εγγραφεί ως anyone@company.com. Επαληθεύστε το email πριν δώσετε οτιδήποτε συνδεδεμένο με αυτή τη διεύθυνση.
- Δοκιμή μόνο της ιδανικής περίπτωσης. Δοκιμάστε λάθος κωδικούς, ληγμένους συνδέσμους και δεύτερο λογαριασμό.
Προσθήκη σύνδεσης στο Mythex
Στο Mythex, η σύνδεση για τους χρήστες της εφαρμογής σας είναι κάτι που προσθέτετε στην εφαρμογή σας· είναι ξεχωριστή από τον δικό σας λογαριασμό Mythex. Το Mythex δεν παρέχει ενσωματωμένο προϊόν ταυτοποίησης, οπότε φέρνετε βιβλιοθήκη ή πάροχο ταυτοποίησης και τα κλειδιά του:
- Επιλέξτε μια προσέγγιση, για παράδειγμα email και κωδικό αποθηκευμένα στη δική σας βάση, ή το SDK ενός φιλοξενούμενου παρόχου.
- Αν αποθηκεύετε χρήστες μόνοι σας, η εφαρμογή χρειάζεται βάση δεδομένων· ζητήστε την στη συνομιλία ή χρησιμοποιήστε το
/database. - Βάλτε τα κλειδιά του παρόχου στα μυστικά του έργου (
/secretsή ρυθμίσεις έργου). - Χρησιμοποιήστε ένα prompt σαν το παραπάνω, και μετά δοκιμάστε στην Προεπισκόπηση. Για Σύνδεση με Google, προσθέστε redirect URIs και για την προεπισκόπηση και για τη δημοσιευμένη διεύθυνσή σας.
Δείτε Προσθήκη σύνδεσης στην εφαρμογή σας στην τεκμηρίωση. Αν χτίζετε επαγγελματικό προϊόν με συνδρομή, το πώς να φτιάξετε SaaS MVP καλύπτει μαζί λογαριασμούς και χρεώσεις.
Ερωτήσεις
Ποια είναι η ευκολότερη σύνδεση για μια εφαρμογή;
Η χρήση ενός φιλοξενούμενου παρόχου ταυτοποίησης ή μιας καλά συντηρημένης βιβλιοθήκης είναι συνήθως ο ευκολότερος και ασφαλέστερος δρόμος, επειδή οι συνεδρίες, η αποθήκευση κωδικών και οι επαναφορές χειρίζονται ήδη. Η Σύνδεση με Google είναι η λιγότερο δύσκολη επιλογή για χρήστες με λογαριασμό Google.
Τα magic links είναι ασφαλέστερα από τους κωδικούς;
Καταργούν την επαναχρησιμοποίηση και τους αδύναμους κωδικούς, αλλά μεταφέρουν τον κίνδυνο στον λογαριασμό email του χρήστη. Οι σύνδεσμοι πρέπει να λήγουν γρήγορα και να λειτουργούν μία φορά. Για τις περισσότερες μικρές εφαρμογές είναι λογική επιλογή, συχνά σε συνδυασμό με σύνδεση Google.
Χρειάζομαι έγκριση από την Google για να προσθέσω Σύνδεση με Google;
Αν ζητάτε μόνο βασικές πληροφορίες σύνδεσης (όνομα, email και προφίλ), η Google λέει ότι η επαλήθευση της εφαρμογής δεν είναι υποχρεωτική, αν και πρέπει να ρυθμίσετε οθόνη συναίνεσης και πελάτη OAuth. Η αίτηση πρόσβασης σε ευαίσθητα δεδομένα, όπως Gmail ή Drive, απαιτεί επαλήθευση εφαρμογής από την Google.
Ποια είναι η διαφορά ανάμεσα στη σύνδεση και στα δικαιώματα;
Η σύνδεση (ταυτοποίηση) επιβεβαιώνει ποιος είναι ο χρήστης. Τα δικαιώματα (εξουσιοδότηση) καθορίζουν τι επιτρέπεται να βλέπει και να κάνει. Μια εφαρμογή χρειάζεται και τα δύο, και τα δικαιώματα πρέπει να ελέγχονται στον server σε κάθε αίτημα.