const jwt = require('jsonwebtoken'); const { model: Users } = require('../models/Users'); const auth = async (req, res, next) => { try { // const token = req.header('Authorization').replace('Bearer ', '') const token = req.cookies['todo-jt']; if (token === '') { res.redirect(401, '/login'); } const decoded_token = jwt.verify(token, process.env.JWT_SECRET); const user = await Users.findOne({ _id: decoded_token._id, 'tokens.token': token }); if (!user) { throw new Error(); } req.token = token; req.user = user; next(); } catch (e) { res.status(401).send({ error: 'Please login first.' }); } }; module.exports = auth;