verdaccio
Version:
A lightweight private npm proxy registry
76 lines (66 loc) • 8.43 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _lodash = _interopRequireDefault(require("lodash"));
var _constants = require("../../../lib/constants");
var _utils = require("../../../lib/utils");
var _authUtils = require("../../../lib/auth-utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @prettier
* @flow
*/
function addUserAuthApi(route, auth, config) {
route.post('/login', function (req, res, next) {
const {
username,
password
} = req.body;
auth.authenticate(username, password, async (err, user) => {
if (err) {
const errorCode = err.message ? _constants.HTTP_STATUS.UNAUTHORIZED : _constants.HTTP_STATUS.INTERNAL_ERROR;
next(_utils.ErrorCode.getCode(errorCode, err.message));
} else {
req.remote_user = user;
const jWTSignOptions = (0, _authUtils.getSecurity)(config).web.sign;
next({
token: await auth.jwtEncrypt(user, jWTSignOptions),
username: req.remote_user.name
});
}
});
});
route.put('/reset_password', function (req, res, next) {
if (_lodash.default.isNil(req.remote_user.name)) {
res.status(_constants.HTTP_STATUS.UNAUTHORIZED);
return next({
// FUTURE: update to a more meaningful message
message: _constants.API_ERROR.MUST_BE_LOGGED
});
}
const {
password
} = req.body;
const {
name
} = req.remote_user;
if ((0, _authUtils.validatePassword)(password.new) === false) {
auth.changePassword(name, password.old, password.new, (err, isUpdated) => {
if (_lodash.default.isNil(err) && isUpdated) {
next({
ok: true
});
} else {
return next(_utils.ErrorCode.getInternalError(_constants.API_ERROR.INTERNAL_SERVER_ERROR));
}
});
} else {
return next(_utils.ErrorCode.getCode(_constants.HTTP_STATUS.BAD_REQUEST, _constants.APP_ERROR.PASSWORD_VALIDATION));
}
});
}
var _default = addUserAuthApi;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvd2ViL2VuZHBvaW50L3VzZXIudHMiXSwibmFtZXMiOlsiYWRkVXNlckF1dGhBcGkiLCJyb3V0ZSIsImF1dGgiLCJjb25maWciLCJwb3N0IiwicmVxIiwicmVzIiwibmV4dCIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJib2R5IiwiYXV0aGVudGljYXRlIiwiZXJyIiwidXNlciIsImVycm9yQ29kZSIsIm1lc3NhZ2UiLCJIVFRQX1NUQVRVUyIsIlVOQVVUSE9SSVpFRCIsIklOVEVSTkFMX0VSUk9SIiwiRXJyb3JDb2RlIiwiZ2V0Q29kZSIsInJlbW90ZV91c2VyIiwialdUU2lnbk9wdGlvbnMiLCJ3ZWIiLCJzaWduIiwidG9rZW4iLCJqd3RFbmNyeXB0IiwibmFtZSIsInB1dCIsIl8iLCJpc05pbCIsInN0YXR1cyIsIkFQSV9FUlJPUiIsIk1VU1RfQkVfTE9HR0VEIiwibmV3IiwiY2hhbmdlUGFzc3dvcmQiLCJvbGQiLCJpc1VwZGF0ZWQiLCJvayIsImdldEludGVybmFsRXJyb3IiLCJJTlRFUk5BTF9TRVJWRVJfRVJST1IiLCJCQURfUkVRVUVTVCIsIkFQUF9FUlJPUiIsIlBBU1NXT1JEX1ZBTElEQVRJT04iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQTs7QUFJQTs7QUFFQTs7QUFDQTs7OztBQVpBO0FBQ0E7QUFDQTtBQUNBO0FBV0EsU0FBU0EsY0FBVCxDQUF3QkMsS0FBeEIsRUFBdUNDLElBQXZDLEVBQW9EQyxNQUFwRCxFQUEwRTtBQUN4RUYsRUFBQUEsS0FBSyxDQUFDRyxJQUFOLENBQVcsUUFBWCxFQUFxQixVQUFVQyxHQUFWLEVBQXdCQyxHQUF4QixFQUF1Q0MsSUFBdkMsRUFBcUU7QUFDeEYsVUFBTTtBQUFFQyxNQUFBQSxRQUFGO0FBQVlDLE1BQUFBO0FBQVosUUFBeUJKLEdBQUcsQ0FBQ0ssSUFBbkM7QUFFQVIsSUFBQUEsSUFBSSxDQUFDUyxZQUFMLENBQ0VILFFBREYsRUFFRUMsUUFGRixFQUdFLE9BQU9HLEdBQVAsRUFBWUMsSUFBWixLQUFnRDtBQUM5QyxVQUFJRCxHQUFKLEVBQVM7QUFDUCxjQUFNRSxTQUFTLEdBQUdGLEdBQUcsQ0FBQ0csT0FBSixHQUFjQyx1QkFBWUMsWUFBMUIsR0FBeUNELHVCQUFZRSxjQUF2RTtBQUNBWCxRQUFBQSxJQUFJLENBQUNZLGlCQUFVQyxPQUFWLENBQWtCTixTQUFsQixFQUE2QkYsR0FBRyxDQUFDRyxPQUFqQyxDQUFELENBQUo7QUFDRCxPQUhELE1BR087QUFDTFYsUUFBQUEsR0FBRyxDQUFDZ0IsV0FBSixHQUFrQlIsSUFBbEI7QUFDQSxjQUFNUyxjQUE4QixHQUFHLDRCQUFZbkIsTUFBWixFQUFvQm9CLEdBQXBCLENBQXdCQyxJQUEvRDtBQUVBakIsUUFBQUEsSUFBSSxDQUFDO0FBQ0hrQixVQUFBQSxLQUFLLEVBQUUsTUFBTXZCLElBQUksQ0FBQ3dCLFVBQUwsQ0FBZ0JiLElBQWhCLEVBQXNCUyxjQUF0QixDQURWO0FBRUhkLFVBQUFBLFFBQVEsRUFBRUgsR0FBRyxDQUFDZ0IsV0FBSixDQUFnQk07QUFGdkIsU0FBRCxDQUFKO0FBSUQ7QUFDRixLQWhCSDtBQWtCRCxHQXJCRDtBQXVCQTFCLEVBQUFBLEtBQUssQ0FBQzJCLEdBQU4sQ0FDRSxpQkFERixFQUVFLFVBQVV2QixHQUFWLEVBQXdCQyxHQUF4QixFQUF1Q0MsSUFBdkMsRUFBcUU7QUFDbkUsUUFBSXNCLGdCQUFFQyxLQUFGLENBQVF6QixHQUFHLENBQUNnQixXQUFKLENBQWdCTSxJQUF4QixDQUFKLEVBQW1DO0FBQ2pDckIsTUFBQUEsR0FBRyxDQUFDeUIsTUFBSixDQUFXZix1QkFBWUMsWUFBdkI7QUFDQSxhQUFPVixJQUFJLENBQUM7QUFDVjtBQUNBUSxRQUFBQSxPQUFPLEVBQUVpQixxQkFBVUM7QUFGVCxPQUFELENBQVg7QUFJRDs7QUFFRCxVQUFNO0FBQUV4QixNQUFBQTtBQUFGLFFBQWVKLEdBQUcsQ0FBQ0ssSUFBekI7QUFDQSxVQUFNO0FBQUVpQixNQUFBQTtBQUFGLFFBQVd0QixHQUFHLENBQUNnQixXQUFyQjs7QUFFQSxRQUFJLGlDQUFpQlosUUFBUSxDQUFDeUIsR0FBMUIsTUFBbUMsS0FBdkMsRUFBOEM7QUFDNUNoQyxNQUFBQSxJQUFJLENBQUNpQyxjQUFMLENBQW9CUixJQUFwQixFQUFvQ2xCLFFBQVEsQ0FBQzJCLEdBQTdDLEVBQWtEM0IsUUFBUSxDQUFDeUIsR0FBM0QsRUFBZ0UsQ0FBQ3RCLEdBQUQsRUFBTXlCLFNBQU4sS0FBMEI7QUFDeEYsWUFBSVIsZ0JBQUVDLEtBQUYsQ0FBUWxCLEdBQVIsS0FBZ0J5QixTQUFwQixFQUErQjtBQUM3QjlCLFVBQUFBLElBQUksQ0FBQztBQUNIK0IsWUFBQUEsRUFBRSxFQUFFO0FBREQsV0FBRCxDQUFKO0FBR0QsU0FKRCxNQUlPO0FBQ0wsaUJBQU8vQixJQUFJLENBQUNZLGlCQUFVb0IsZ0JBQVYsQ0FBMkJQLHFCQUFVUSxxQkFBckMsQ0FBRCxDQUFYO0FBQ0Q7QUFDRixPQVJEO0FBU0QsS0FWRCxNQVVPO0FBQ0wsYUFBT2pDLElBQUksQ0FBQ1ksaUJBQVVDLE9BQVYsQ0FBa0JKLHVCQUFZeUIsV0FBOUIsRUFBMkNDLHFCQUFVQyxtQkFBckQsQ0FBRCxDQUFYO0FBQ0Q7QUFDRixHQTNCSDtBQTZCRDs7ZUFFYzNDLGMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICogQGZsb3dcbiAqL1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBSb3V0ZXIsIFJlc3BvbnNlLCBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyBDb25maWcsIFJlbW90ZVVzZXIsIEpXVFNpZ25PcHRpb25zIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBBUElfRVJST1IsIEFQUF9FUlJPUiwgSFRUUF9TVEFUVVMgfSBmcm9tICcuLi8uLi8uLi9saWIvY29uc3RhbnRzJztcbmltcG9ydCB7IElBdXRoLCAkTmV4dEZ1bmN0aW9uVmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnLi4vLi4vLi4vbGliL3V0aWxzJztcbmltcG9ydCB7IGdldFNlY3VyaXR5LCB2YWxpZGF0ZVBhc3N3b3JkIH0gZnJvbSAnLi4vLi4vLi4vbGliL2F1dGgtdXRpbHMnO1xuXG5mdW5jdGlvbiBhZGRVc2VyQXV0aEFwaShyb3V0ZTogUm91dGVyLCBhdXRoOiBJQXV0aCwgY29uZmlnOiBDb25maWcpOiB2b2lkIHtcbiAgcm91dGUucG9zdCgnL2xvZ2luJywgZnVuY3Rpb24gKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0gPSByZXEuYm9keTtcblxuICAgIGF1dGguYXV0aGVudGljYXRlKFxuICAgICAgdXNlcm5hbWUsXG4gICAgICBwYXNzd29yZCxcbiAgICAgIGFzeW5jIChlcnIsIHVzZXI6IFJlbW90ZVVzZXIpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGNvbnN0IGVycm9yQ29kZSA9IGVyci5tZXNzYWdlID8gSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVEIDogSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1I7XG4gICAgICAgICAgbmV4dChFcnJvckNvZGUuZ2V0Q29kZShlcnJvckNvZGUsIGVyci5tZXNzYWdlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVxLnJlbW90ZV91c2VyID0gdXNlcjtcbiAgICAgICAgICBjb25zdCBqV1RTaWduT3B0aW9uczogSldUU2lnbk9wdGlvbnMgPSBnZXRTZWN1cml0eShjb25maWcpLndlYi5zaWduO1xuXG4gICAgICAgICAgbmV4dCh7XG4gICAgICAgICAgICB0b2tlbjogYXdhaXQgYXV0aC5qd3RFbmNyeXB0KHVzZXIsIGpXVFNpZ25PcHRpb25zKSxcbiAgICAgICAgICAgIHVzZXJuYW1lOiByZXEucmVtb3RlX3VzZXIubmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfSk7XG5cbiAgcm91dGUucHV0KFxuICAgICcvcmVzZXRfcGFzc3dvcmQnLFxuICAgIGZ1bmN0aW9uIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIGlmIChfLmlzTmlsKHJlcS5yZW1vdGVfdXNlci5uYW1lKSkge1xuICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCk7XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICAvLyBGVVRVUkU6IHVwZGF0ZSB0byBhIG1vcmUgbWVhbmluZ2Z1bCBtZXNzYWdlXG4gICAgICAgICAgbWVzc2FnZTogQVBJX0VSUk9SLk1VU1RfQkVfTE9HR0VEXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHBhc3N3b3JkIH0gPSByZXEuYm9keTtcbiAgICAgIGNvbnN0IHsgbmFtZSB9ID0gcmVxLnJlbW90ZV91c2VyO1xuXG4gICAgICBpZiAodmFsaWRhdGVQYXNzd29yZChwYXNzd29yZC5uZXcpID09PSBmYWxzZSkge1xuICAgICAgICBhdXRoLmNoYW5nZVBhc3N3b3JkKG5hbWUgYXMgc3RyaW5nLCBwYXNzd29yZC5vbGQsIHBhc3N3b3JkLm5ldywgKGVyciwgaXNVcGRhdGVkKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKF8uaXNOaWwoZXJyKSAmJiBpc1VwZGF0ZWQpIHtcbiAgICAgICAgICAgIG5leHQoe1xuICAgICAgICAgICAgICBvazogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRJbnRlcm5hbEVycm9yKEFQSV9FUlJPUi5JTlRFUk5BTF9TRVJWRVJfRVJST1IpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuQkFEX1JFUVVFU1QsIEFQUF9FUlJPUi5QQVNTV09SRF9WQUxJREFUSU9OKSk7XG4gICAgICB9XG4gICAgfVxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhZGRVc2VyQXV0aEFwaTtcbiJdfQ==
;