var secret = require('.').secret; const crypto = require('crypto'); const passport = require('passport'); var HeaderAPIKeyStrategy = require('passport-headerapikey').HeaderAPIKeyStrategy; const DB = require('../database/mysql'); passport.use('headerapikey', new HeaderAPIKeyStrategy( { header: 'Authorization', prefix: `${process.env.AUTHORIZATION_PREFIX} ` }, false, function (apikey, done) { const encryptedKey = crypto.createHmac('sha256', secret).update(apikey).digest('hex'); DB.Application.findOne({ where: { apikey: encryptedKey } }) .then(function (application) { if (!application) { return done({ message: "Application can't be found.", status: 404 }, false, false); } return done(null, application); }).catch(done); } ));