Daten mit einem Schlüssel ver- und entschlüsseln
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.
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 });
}