JavaScript: un modo per impostare una scadenza al web storage

JavaScript: un modo per impostare una scadenza al web storage

In JavaScript sia il local storage che il session storage non ci permettono al momento di controllare la loro scadenza.

In PHP una sessione ha una scadenza predefinita. Possiamo emulare questa scadenza in JavaScript:


const Session = {
		storage: sessionStorage,
		
		create(item, value) {
		  if(this.storage.getItem(item) === null) {
			this.storage.setItem(item, value);
			const date = new Date();
			const minutes = date.getMinutes();
			this.storage.setItem('expires', minutes + 1);
		  }
			
		},
		
		retrieve(item) {
			return this.storage.getItem(item);
		},
		destroy(item) {
			this.storage.removeItem(item);
		},
		check(item) {
		  if(this.storage.getItem('expires') !== null) {
			const d = new Date();
			const m = d.getMinutes();
			const expires = this.retrieve('expires');
			
			if(expires - m === 0) {
				this.destroy(item);
			}
			
		  }
			
		}
		
};

La chiave expires ha il valore dei minuti presi dal timestamp corrente più uno. In questo modo la nostra sessione durerà 1 minuto. Tutto quello che dobbiamo fare è controllare il tempo trascorso eseguendo una semplice sottrazione.

Ovviamente nel caso del local storage possiamo impostare una scadenza in giorni.

Torna su