origin.js 538 B

1234567891011121314151617181920212223
  1. const getRemoteFromQuery = ({
  2. headers: {
  3. 'x-spc-host': spcHost = '',
  4. 'x-ricochet-origin': ricochetOrigin,
  5. origin,
  6. referer,
  7. },
  8. }) => ricochetOrigin || (referer ? new URL(referer).origin : origin || spcHost);
  9. const originMiddleware = () => (req, res, next) => {
  10. const remote = getRemoteFromQuery(req);
  11. if (!remote) {
  12. res.status(400).json({
  13. message: 'One of X-Ricochet-Origin, Origin, Referer header is required',
  14. });
  15. }
  16. req.ricochetOrigin = remote;
  17. next();
  18. };
  19. export default originMiddleware;