const AuthAPI = require('../AuthAPI') const ReadMethods = { GET: true, HEAD: true } /** * Sets req.user from the payload in the auth token in the request. */ function userToken(req, res, next) { if (req.user) { return next() } const token = (ReadMethods[req.method] ? req.query : req.body).token if (!token) { req.user = null return next() } AuthAPI.verifyToken(token).then( payload => { req.user = payload next() }, error => { if (error.name === 'JsonWebTokenError') { res.status(403).send({ error: `Bad auth token: ${error.message}` }) } else { console.error(error) res.status(500).send({ error: 'Unable to verify auth' }) } } ) } module.exports = userToken