Sobes.tech
Junior

Πώς να ρυθμίσετε τα cookies ώστε να διαγράφονται μετά από 3 ημέρες;

sobes.tech AI

Απάντηση από AI

Για να ορίσετε ένα "cookie" με λήξη σε 3 ημέρες, μπορείτε να χρησιμοποιήσετε το χαρακτηριστικό expires ή max-age.

  • expires: Ορίζει μια συγκεκριμένη ημερομηνία και ώρα λήξης. Η ημερομηνία πρέπει να είναι σε μορφή GMT (Γενικό Ώρα Παγκόσμιας Ώρας).

  • max-age: Ορίζει τον αριθμό των δευτερολέπτων μετά τα οποία το "cookie" πρέπει να λήξει, ξεκινώντας από τη στιγμή της δημιουργίας του. Είναι μια πιο ευέλικτη και συστηνόμενη μέθοδος.

Παράδειγμα σε JavaScript με max-age:

// Λαμβάνουμε την τρέχουσα ώρα σε milliseconds
const now = new Date().getTime();

// Υπολογίζουμε τον χρόνο σε milliseconds για 3 ημέρες
const threeDaysInMilliseconds = 3 * 24 * 60 * 60 * 1000;

// Υπολογίζουμε την ώρα λήξης σε milliseconds
const expirationTime = now + threeDaysInMilliseconds;

// Δημιουργούμε ένα αντικείμενο Date για την ώρα λήξης
const expirationDate = new Date(expirationTime);

// Ορίζουμε το cookie με το χαρακτηριστικό expires, μετατρέποντας την ημερομηνία σε GMT
//document.cookie = "myCookie=myValue; expires=" + expirationDate.toUTCString();

// Ή χρησιμοποιούμε max-age (συνιστάται)
const threeDaysInSeconds = 3 * 24 * 60 * 60;
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds;

// Πρόσθετα χαρακτηριστικά για καλύτερη πρακτική:
// secure - το cookie αποστέλλεται μόνο μέσω HTTPS
// HttpOnly - το cookie δεν είναι προσβάσιμο μέσω document.cookie (προστασία από XSS)
// path - διαδρομή στην οποία ισχύει το cookie
// domain - το domain στο οποίο ισχύει το cookie
// SameSite - αποτρέπει την αποστολή του cookie σε αιτήματα μεταξύ ιστοσελίδων (συνιστάται: Strict, Lax)
document.cookie = "myCookie=myValue; max-age=" + threeDaysInSeconds + "; path=/; secure; SameSite=Lax";

Σύγκριση expires και max-age:

Χαρακτηριστικό Περιγραφή Μορφή Πλεονεκτήματα Μειονεκτήματα
expires Δείχνει μια συγκεκριμένη ημερομηνία λήξης. Ημερομηνία σε μορφή GMT. Συμβατό με παλαιότερους περιηγητές. Εξαρτάται από την ακριβή ώρα στον υπολογιστή του πελάτη.
max-age Δείχνει τον αριθμό των δευτερολέπτων μέχρι τη λήξη. Αριθμός δευτερολέπτων. Δεν εξαρτάται από την ώρα του πελάτη. Πιο ευέλικτο. Συνιστάται. Μπορεί να μην υποστηρίζεται πλήρως από παλαιότερους περιηγητές.

Τα "cookie" μπορούν επίσης να οριστούν και από τον διακομιστή, π.χ., με την κεφαλίδα Set-Cookie.

Set-Cookie: myCookie=myValue; Max-Age=259200; Path=/; Secure; SameSite=Lax

Εδώ, το Max-Age=259200 αντιστοιχεί σε 3 ημέρες σε δευτερόλεπτα (3 * 24 * 60 * 60).