我正在生成一个随机数来验证向导步骤以一个接一个地保护它。
我知道如何在 nodejs 中创建 nonce 并将其存储在数据库中以确保它可以使用一次。
但我想知道,是否有一个想法来生成和验证上面的随机数,比如只使用一次,如果可能的话,可以在时间限制(到期)内使用,而无需将其存储在数据库中,而只需将其返回到客户端在一个向导步骤中并在下一步中验证相同。
我通常使用下面的方法来生成随机数,对其进行规范化并将其存储在具有过期时间的 mongodb 中,以便 mongodb 将在特定时间后删除它,如果它没有被使用。
var crypto = require('crypto');
crypto.randomBytes(32, function (err, bytes) {
if (err) {
next(err);
} else {
next(null, normalize(bytes));
}
});
请建议是否有任何好的/优化的方式来生成 nonce,以及在没有数据库调用的情况下处理一次性使用和到期的可能性。