payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
40 lines (39 loc) • 3.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "authenticateLocalStrategy", {
enumerable: true,
get: function() {
return authenticateLocalStrategy;
}
});
const _crypto = /*#__PURE__*/ _interop_require_default(require("crypto"));
const _scmp = /*#__PURE__*/ _interop_require_default(require("scmp"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const authenticateLocalStrategy = async ({ doc, password })=>{
try {
const { hash, salt } = doc;
if (typeof salt === 'string' && typeof hash === 'string') {
const res = await new Promise((resolve, reject)=>{
_crypto.default.pbkdf2(password, salt, 25000, 512, 'sha256', (e, hashBuffer)=>{
if (e) reject(null);
if ((0, _scmp.default)(hashBuffer, Buffer.from(hash, 'hex'))) {
resolve(doc);
} else {
reject(null);
}
});
});
return res;
}
return null;
} catch (err) {
return null;
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hdXRoL3N0cmF0ZWdpZXMvbG9jYWwvYXV0aGVudGljYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJ1xuaW1wb3J0IHNjbXAgZnJvbSAnc2NtcCdcblxuaW1wb3J0IHR5cGUgeyBUeXBlV2l0aElEIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuXG50eXBlIERvYyA9IFR5cGVXaXRoSUQgJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG50eXBlIEFyZ3MgPSB7XG4gIGRvYzogRG9jXG4gIHBhc3N3b3JkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhlbnRpY2F0ZUxvY2FsU3RyYXRlZ3kgPSBhc3luYyAoeyBkb2MsIHBhc3N3b3JkIH06IEFyZ3MpOiBQcm9taXNlPERvYyB8IG51bGw+ID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGhhc2gsIHNhbHQgfSA9IGRvY1xuXG4gICAgaWYgKHR5cGVvZiBzYWx0ID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgaGFzaCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IG5ldyBQcm9taXNlPERvYyB8IG51bGw+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY3J5cHRvLnBia2RmMihwYXNzd29yZCwgc2FsdCwgMjUwMDAsIDUxMiwgJ3NoYTI1NicsIChlLCBoYXNoQnVmZmVyKSA9PiB7XG4gICAgICAgICAgaWYgKGUpIHJlamVjdChudWxsKVxuXG4gICAgICAgICAgaWYgKHNjbXAoaGFzaEJ1ZmZlciwgQnVmZmVyLmZyb20oaGFzaCwgJ2hleCcpKSkge1xuICAgICAgICAgICAgcmVzb2x2ZShkb2MpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiByZXNcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG4iXSwibmFtZXMiOlsiYXV0aGVudGljYXRlTG9jYWxTdHJhdGVneSIsImRvYyIsInBhc3N3b3JkIiwiaGFzaCIsInNhbHQiLCJyZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImNyeXB0byIsInBia2RmMiIsImUiLCJoYXNoQnVmZmVyIiwic2NtcCIsIkJ1ZmZlciIsImZyb20iLCJlcnIiXSwibWFwcGluZ3MiOiI7Ozs7K0JBWWFBOzs7ZUFBQUE7OzsrREFaTTs2REFDRjs7Ozs7O0FBV1YsTUFBTUEsNEJBQTRCLE9BQU8sRUFBRUMsR0FBRyxFQUFFQyxRQUFRLEVBQVE7SUFDckUsSUFBSTtRQUNGLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUUsR0FBR0g7UUFFdkIsSUFBSSxPQUFPRyxTQUFTLFlBQVksT0FBT0QsU0FBUyxVQUFVO1lBQ3hELE1BQU1FLE1BQU0sTUFBTSxJQUFJQyxRQUFvQixDQUFDQyxTQUFTQztnQkFDbERDLGVBQU0sQ0FBQ0MsTUFBTSxDQUFDUixVQUFVRSxNQUFNLE9BQU8sS0FBSyxVQUFVLENBQUNPLEdBQUdDO29CQUN0RCxJQUFJRCxHQUFHSCxPQUFPO29CQUVkLElBQUlLLElBQUFBLGFBQUksRUFBQ0QsWUFBWUUsT0FBT0MsSUFBSSxDQUFDWixNQUFNLFNBQVM7d0JBQzlDSSxRQUFRTjtvQkFDVixPQUFPO3dCQUNMTyxPQUFPO29CQUNUO2dCQUNGO1lBQ0Y7WUFFQSxPQUFPSDtRQUNUO1FBRUEsT0FBTztJQUNULEVBQUUsT0FBT1csS0FBSztRQUNaLE9BQU87SUFDVDtBQUNGIn0=