Πώς να ορίσετε cookies στο πρόγραμμα περιήγησης;
sobes.tech AI
Απάντηση από AI
Ορισμός cookie στον browser μπορεί να γίνει με διάφορους τρόπους.
-
Μέσω της κεφαλίδας
Set-Cookieαπό τον διακομιστή. Αυτή είναι η κύρια μέθοδος για την εγκατάσταση cookie, που γίνεται στην πλευρά του διακομιστή. Ο διακομιστής στέλνει στον browser την κεφαλίδαSet-Cookie, η οποία instructs τον browser να αποθηκεύσει ένα συγκεκριμένο ζεύγος κλειδιού-τιμής.Παράδειγμα απάντησης HTTP από τον διακομιστή:
HTTP/1.1 200 OK Content-Type: text/html Set-Cookie: username=johndoe; Expires=Thu, 21 Dec 2023 12:00:00 GMT; Path=/; Secure; HttpOnly Set-Cookie: settings=theme=dark&lang=en; Path=/Παράμετροι της κεφαλίδας
Set-Cookie:name=value: Όνομα και τιμή του cookie. Απαιτούμενο.Expires=<ημερομηνία>: Ημερομηνία και ώρα λήξης του cookie. Αν δεν οριστεί, το cookie είναι συνεδρίας και διαγράφεται κατά το κλείσιμο του browser. Μορφή ημερομηνίας RFC 1123.Max-Age=<δευτερόλεπτα>: Μέγιστος χρόνος ζωής του cookie σε δευτερόλεπτα. Έχει προτεραιότητα έναντι τουExpires.Domain=<τομέας>: Ο τομέας στον οποίο είναι διαθέσιμο το cookie. Προεπιλογή ο τρέχων τομέας (αλλά όχι υποτομείς).Path=<διαδρομή>: Η διαδρομή στον διακομιστή στην οποία είναι διαθέσιμο το cookie. Προεπιλογή η ριζική διαδρομή/.Secure: Σημαία που υποδεικνύει ότι το cookie πρέπει να αποστέλλεται μόνο μέσω HTTPS.HttpOnly: Σημαία που υποδεικνύει ότι το cookie δεν είναι προσβάσιμο μέσω JavaScript μέσω τουdocument.cookie. Προστατεύει από επιθέσεις XSS.SameSite=<mode>: Διαχειρίζεται την αποστολή cookie σε cross-site αιτήματα. Δυνατές τιμές:Strict,Lax(προεπιλογή),None.
-
Μέσω JavaScript στην πλευρά του πελάτη. Με τη βοήθεια του αντικειμένου
document.cookieμπορεί να διαβάζει, να γράφει και να διαγράφει cookies.Γράψιμο cookie:
// Ορισμός απλού cookie document.cookie = "username=johndoe"; // Ορισμός cookie με expires, path, secure και SameSite=Lax const expiryDate = new Date(); expiryDate.setTime(expiryDate.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30 ημέρες document.cookie = `token=abcdef123456; expires=${expiryDate.toUTCString()}; path=/; secure; SameSite=Lax`;Ανάγνωση cookie:
// Το `document.cookie` επιστρέφει μια συμβολοσειρά με όλα τα διαθέσιμα cookies σε μορφή "key1=value1; key2=value2; ..." console.log(document.cookie);Διαγραφή cookie: Για διαγραφή cookie, πρέπει να ορίσετε την ημερομηνία λήξης σε παρελθόν.
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; // Ορισμός expires σε παρελθόνΕίναι σημαντικό κατά τη διαγραφή να καθορίζονται οι ίδιες παράμετροι
pathκαιdomain(αν είχαν οριστεί), όπως και κατά τη δημιουργία. ΤοSameSiteπρέπει επίσης να ταιριάζει για σωστή διαγραφή. -
Με τη βοήθεια εξωτερικών βιβλιοθηκών JavaScript. Υπάρχουν βιβλιοθήκες που απλοποιούν τη διαχείριση cookies (π.χ.,
js-cookie). Παρέχουν πιο εύχρηστο API για την εγκατάσταση, ανάγνωση και διαγραφή cookies.Παράδειγμα με
js-cookie:// Εισαγωγή βιβλιοθήκης // <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script> // Ορισμός cookie Cookies.set('username', 'johndoe'); // Ορισμός cookie με επιλογές Cookies.set('token', 'abcdef123456', { expires: 30, path: '/', secure: true, sameSite: 'Lax' }); // expires σε ημέρες // Ανάγνωση cookie const username = Cookies.get('username'); // Επιστρέφει 'johndoe' ή undefined const allCookies = Cookies.get(); // Επιστρέφει αντικείμενο με όλα τα cookies // Διαγραφή cookie Cookies.remove('username'); Cookies.remove('token', { path: '/' }); // Ορισμός path, αν είχε οριστεί κατά την εγκατάσταση