81
Εικόνα 52 - Μήνυμα λάθους υπερσυνδέσμου
4.3 Σύνδεση του χρήστη
Η σύνδεση του χρήστη στο σύστημα για να επιτευχθεί περνάει από διάφορους ελέγχους.
Αρχικά, κατά την είσοδο του χρήστη στη σελίδα «Σύνδεσης», δημιουργείται αυτόματα ένα
token 64 χαρακτήρων. Το token αυτό, περνάει σαν value ενός κρυμμένου πεδίου (input) και
αποθηκεύεται σε ένα SESSION με όνομα token_csrf. Την ίδια στιγμή αποθηκεύονται και άλλες
δύο μεταβλητές SESSION, η maxTime, η key_time και γίνεται «αναγέννηση» (regenerate) του
id του SESSION. Το maxTime είναι ο χρόνος που μένει ενεργή η σελίδα και συγκεκριμένα για
μία ώρα, ενώ η key_time είναι ο χρόνος που ξεκινάει να μετράει σαν δείχτης για την maxTime.
Έτσι όταν χρήστης προσπαθήσει να εισέλθει στο σύστημα, πρώτα περνάει από έλεγχο των
token, αυτού που είναι αποθηκευμένο στο input και αυτού που είναι αποθηκευμένο στο
SESSION. Έπειτα ελέγχεται αν είναι ενεργοποιημένος ο λογαριασμός του χρήστη. Στη
συνέχεια επαληθεύεται αν το συνθηματικό ταιριάζει με αυτό στη βάση. Μετά, συγκρίνεται ότι
δεν πέρασε ο χρόνος της σελίδας που μένει ενεργή και στο τέλος αν όλα πάνε καλά, γίνεται
είσοδος του χρήστη στο σύστημα. Στη γραμμή 9-11 δημιουργούνται οι μεταβλητές των
SESSION, στη γραμμή 13 γίνεται regenerate το id και στην 15 γίνεται επιστροφή του token
στην javascript και από κει στο input πεδίο, όπως φαίνεται στην
Αφού έγιναν γνωστά τα παραπάνω που συμβαίνουν στο backend κομμάτι, τότε για να συνδεθεί
ο χρήστης στο σύστημα, απαιτείται ο σωστός συνδυασμός του username ή email και του
συνθηματικού του. Σε περίπτωση λάθους, εμφανίζονται τα κατάλληλα μηνύματα
προειδοποίησης, είτε αυτά αφορούν σε σωστό έλεγχο εισαγωγής των πεδίων, είτε αφορούν σε