UNPKG

@lomray/microservice-gateway

Version:
32 lines (28 loc) 932 B
'use strict'; var microserviceHelpers = require('@lomray/microservice-helpers'); var _ = require('lodash'); var RequestIp = require('request-ip'); /** * Collect and attach user info to headers */ const userInfo = ({ handleUserInfo } = {}) => (req, res, next) => { const clientIp = RequestIp.getClientIp(req); // parse user info try { const userInfoData = req.header('user-info'); if (userInfoData) { const parsedInfo = JSON.parse(userInfoData); _.set(req.headers, 'user-info', parsedInfo); } } catch (e) { microserviceHelpers.Log.error('Failed parse user info', e); } // set user ip if (clientIp) { _.set(req.headers, 'user-info.ipAddress', clientIp); } handleUserInfo === null || handleUserInfo === void 0 ? void 0 : handleUserInfo(_.get(req.headers, 'userInfo', {}) || {}, req); next(); }; module.exports = userInfo;