feathers-authentication-local
Version:
Local authentication strategy for feathers-authentication
39 lines (30 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = hasher;
var _bcryptjs = require('bcryptjs');
var _bcryptjs2 = _interopRequireDefault(_bcryptjs);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var BCRYPT_WORK_FACTOR_BASE = 12;
var BCRYPT_DATE_BASE = 1483228800000;
var BCRYPT_WORK_INCREASE_INTERVAL = 47300000000;
function hasher(password) {
return new Promise(function (resolve, reject) {
var BCRYPT_CURRENT_DATE = new Date().getTime();
var BCRYPT_WORK_INCREASE = Math.max(0, Math.floor((BCRYPT_CURRENT_DATE - BCRYPT_DATE_BASE) / BCRYPT_WORK_INCREASE_INTERVAL));
var BCRYPT_WORK_FACTOR = Math.min(19, BCRYPT_WORK_FACTOR_BASE + BCRYPT_WORK_INCREASE);
_bcryptjs2.default.genSalt(BCRYPT_WORK_FACTOR, function (error, salt) {
if (error) {
return reject(error);
}
_bcryptjs2.default.hash(password, salt, function (error, hashedPassword) {
if (error) {
return reject(error);
}
resolve(hashedPassword);
});
});
});
}
module.exports = exports['default'];