ForgeTotal.js 5
nl

Total.js 5

Gegevens met een sleutel versleutelen en ontsleutelen

Total.js 5 · total5@0.0.19 securitycrypto Uitgevoerd met Total.js 5

ENCRYPT(value, key) serialiseert een waarde naar JSON en geeft een ondoorzichtige tekst terug. DECRYPT(text, key) geeft de oorspronkelijke waarde terug, of null wanneer de tekst is gewijzigd, ongeldig is of met een andere sleutel is versleuteld. De instelling secret van je config wordt door de sleutel gemengd, zodat tokens uit de ene installatie in een andere niet openen.

Gebruik het voor links om wachtwoorden te resetten, uitnodigingstokens en alles wat je aan een client geeft en later wilt controleren zonder het op te slaan. Zet een verlooptijd (een tijdstempel) in de waarde en controleer die na het ontsleutelen.

config
secret : change-this-secret-in-production
controllers/tokens.js
exports.install = function() {
	ROUTE('GET /token/', create);
	ROUTE('GET /verify/', verify);
};

function create($) {
	var token = ENCRYPT({ userid: '123', expire: Date.now() + 60000 }, 'reset-password');
	$.json({ token: token });
}

function verify($) {

	var data = DECRYPT($.query.token || '', 'reset-password');

	if (!data || data.expire < Date.now()) {
		$.invalid(401);
		return;
	}

	$.json({ userid: data.userid });
}