Cifra y descifra datos con una clave
ENCRYPT(value, key) serializa un valor a JSON y devuelve un texto opaco. DECRYPT(text, key) devuelve el valor original, o null cuando el texto se modificó, no es válido o se cifró con otra clave. El ajuste secret de tu config se mezcla con la clave, así que los tokens creados en una instalación no se abren en otra.
Úsalo para enlaces de restablecimiento de contraseña, tokens de invitación y todo lo que debas entregar a un cliente y verificar después sin guardarlo. Incluye una caducidad dentro del valor (una marca de tiempo) y compruébala tras descifrar.
secret : change-this-secret-in-productionexports.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 });
}