ForgeTotal.js 5
de

Total.js 5

Daten mit einem Schlüssel ver- und entschlüsseln

Total.js 5 · total5@0.0.19 securitycrypto Mit Total.js 5 ausgeführt

ENCRYPT(value, key) serialisiert einen Wert zu JSON und gibt einen undurchsichtigen Text zurück. DECRYPT(text, key) liefert den Originalwert, oder null, wenn der Text verändert wurde, ungültig ist oder mit einem anderen Schlüssel verschlüsselt wurde. Die Einstellung secret deiner Config fließt in den Schlüssel ein, sodass auf einer Installation erzeugte Tokens auf einer anderen nicht funktionieren.

Nutze es für Links zum Zurücksetzen des Passworts, Einladungs-Tokens und alles, was du an einen Client gibst und später prüfen willst, ohne es zu speichern. Lege ein Ablaufdatum (einen Zeitstempel) in den Wert und prüfe es nach dem Entschlüsseln.

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 });
}