const jwt = require('jsonwebtoken') const config = require('./config') const User = require('./models/user') const Auth = { async isAuth (req, res, next) { const token = req.body.token || req.params.token || req.headers['x-access-token'] console.log('[AUTH] ', token) if (!token) return res.status(403).send({ message: 'Token not found' }) jwt.verify(token, config.secret, async (err, decoded) => { if (err) return res.status(403).send({ message: 'Failed to authenticate token ' + err }) console.log('DECODED TOKEN', decoded) req.user = await User.findOne({ where: { email: decoded.email } }) next() }) }, async isAdmin (req, res, next) { if (req.user.is_admin) return next() return res.status(403).send({ message: 'Admin needed' }) } } module.exports = Auth