HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/dev/nowruzgan/rest/config/http.js
module.exports.http = {

  middleware: {

    order: [
      'noCache',
      'bodyParser',
      'compress',
      'detokenizer',
      'router',
    ],

    noCache: async (req, res, next) => {
      res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
      res.header('Expires', '-1');
      res.header('Pragma', 'no-cache');  
      next();
    },

    detokenizer: async (req, res, next) => {
      let token = req.get('x-token');
      if(!token) return next();
      let session = await sails.helpers.cache.with({action: 'get', key: `${token}:session`});
      if(!session) return next();

      if(((new Date()).valueOf() - session.timestamp)/1000 > sails.config.custom.profileCacheTTL){
        let user = await User.findOne({id: session.user.id, state: 'active'}).populate('roles');

        if(!user){
          await sails.helpers.cache.with({action: 'del', key: `${token}:session`});
          return next();
        }

        session.publicUser = User.getPublic(user),
        session.user = user,
        session.timestamp = (new Date()).valueOf();
        await sails.helpers.cache.with({action: 'set', key: `${token}:session`, value: session});
      }

      req.sessionData = session;
      next();
    },
  },
};