UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

40 lines (39 loc) 3.51 kB
"use strict"; 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=