sannimichaelse/Parcel-Delivery

View on GitHub
server/middlewares/TokenMiddleware.js

Summary

Maintainability
A
0 mins
Test Coverage
import jwt from 'jsonwebtoken';
import config from '../config/index';
/**
 * @exports
 * @class TokenMiddleware
 */
class TokenMiddleware {
/**
 * TokenMiddleware
 * Verify TOKEN
 * @staticmethod
 * @param  {object} req - Request object
 * @param {object} res - Response object
 * @param {function} next - middleware next (for error handling)
 * @return {json} res.json
 */
  static verifyToken(req, res, next) {
    // check header or url parameters or post parameters for token
    const token = req.body.accesstoken || req.headers['x-access-token'];
    if (token) {
      jwt.verify(token, config.jwtSecretKey, (err, decoded) => {
        if (err) {
          return res
            .status(400)
            .json({
              verifyToken: false,
              message: 'Failed to authenticate token.',
            });
        }
        req.decoded = decoded;
        next();
      });
    } else {
      return res.status(403).send({
        verifyToken: false,
        message: 'No token provided.',
      });
    }
  }
}
export default TokenMiddleware;