ForgeTotal.js 5
ro

Total.js 5

Tokenuri legate de un browser cu ENCRYPTREQ() și DECRYPTREQ()

Total.js 5 · total5@0.0.19 securityencryptiontokens Executată cu Total.js 5

ENCRYPTREQ($, value, key, [strict]) criptează o valoare împreună cu user agent-ul cererii și returnează un token text. DECRYPTREQ($, token, key) citește valoarea înapoi și nu returnează nimic (undefined) când cheia este greșită, tokenul este gol sau cererea vine de la un alt client. Cu strict setat la true, adresa IP a cererii face și ea parte din token, deci încetează să funcționeze și atunci când adresa se schimbă.

Folosește-l pentru valori pe care le dai browserului și le aștepți înapoi de la același browser: un link de scurtă durată, o adresă de descărcare, un token de formular. Nu înlocuiește o sesiune: user agent-ul se copiază ușor. Pentru tokenuri care nu depind de cerere vezi rețeta despre criptare și decriptare.

controllers/tokens.js
exports.install = function() {
	ROUTE('GET /issue/', issue);
	ROUTE('GET /read/', read);
	ROUTE('GET /read-wrong-key/', wrongkey);
};

function issue($) {
	$.json({ token: ENCRYPTREQ($, { id: 5 }, 'my-secret'), strict: ENCRYPTREQ($, 'only-here', 'my-secret', true) });
}

function read($) {
	$.json({ value: DECRYPTREQ($, $.query.token, 'my-secret') || null });
}

function wrongkey($) {
	$.json({ value: DECRYPTREQ($, $.query.token, 'another-secret') || null });
}