const {models} = require('vn-loopback/server/server'); module.exports = Self => { Self.remoteMethodCtx('validateToken', { description: 'Validates the current logged user token', accepts: [], accessType: 'READ', returns: { type: 'Boolean', root: true }, http: { path: `/validateToken`, verb: 'GET' } }); Self.validateToken = async function(ctx) { const {accessToken: token} = ctx.req; // Check if current token is valid const {renewPeriod, courtesyTime} = await models.AccessTokenConfig.findOne({ fields: ['renewPeriod', 'courtesyTime'] }); const now = Date.now(); const differenceMilliseconds = now - token.created; const differenceSeconds = Math.floor(differenceMilliseconds / 1000); const isNotExceeded = differenceSeconds < renewPeriod - courtesyTime; return isNotExceeded; }; };