@brontosaurus/db
Version:
:ocean: Schema for brontosaurus
36 lines (35 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.verifyResetToken = exports.verifySpecialPassword = exports.verifyPreviousPassword = exports.garblePassword = void 0;
const crypto_1 = require("crypto");
const garblePassword = (password, salt) => {
const salted = password + ':' + salt;
const md5 = crypto_1.createHash('md5').update(salted);
return md5.digest('hex');
};
exports.garblePassword = garblePassword;
const verifyPreviousPassword = (garbledPassword, previousPassword) => {
return garbledPassword === previousPassword.password;
};
exports.verifyPreviousPassword = verifyPreviousPassword;
const verifySpecialPassword = (garbledPassword, specialPassword) => {
if (Boolean(specialPassword.suspendedAt) || Boolean(specialPassword.suspendedBy)) {
return false;
}
const presentTime = new Date().getTime();
const expireTime = specialPassword.expireAt.getTime();
if (presentTime > expireTime) {
return false;
}
return garbledPassword === specialPassword.password;
};
exports.verifySpecialPassword = verifySpecialPassword;
const verifyResetToken = (garbledPassword, resetToken) => {
const presentTime = new Date().getTime();
const expireTime = resetToken.expireAt.getTime();
if (presentTime > expireTime) {
return false;
}
return garbledPassword === resetToken.password;
};
exports.verifyResetToken = verifyResetToken;