ForgeTotal.js 5
sv

Total.js 5

Kryptera och dekryptera data med en nyckel

Total.js 5 · total5@0.0.19 securitycrypto Körd med Total.js 5

ENCRYPT(value, key) serialiserar ett värde till JSON och returnerar en ogenomskinlig text. DECRYPT(text, key) returnerar det ursprungliga värdet, eller null när texten har ändrats, inte är giltig eller krypterades med en annan nyckel. Inställningen secret i din config blandas in i nyckeln, så tokens skapade på en installation öppnas inte på en annan.

Använd det för länkar för återställning av lösenord, inbjudningstokens och allt du lämnar till en klient och verifierar senare utan att lagra det. Lägg en utgångstid (en tidsstämpel) i värdet och kontrollera den efter dekrypteringen.

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