UNPKG

feathers-authentication-local

Version:
39 lines (30 loc) 1.14 kB
'use strict'; 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'];