Newer
Older
const jwt = require('jsonwebtoken');
const { model: Users } = require('../models/Users');

Lucendio
committed
const auth = async (req, res, next) => {
try {
// const token = req.header('Authorization').replace('Bearer ', '')
const token = req.cookies['todo-jt'];

Lucendio
committed
if (token === '') {
res.redirect(401, '/login');

Lucendio
committed
}
const decoded_token = jwt.verify(token, process.env.JWT_SECRET);
const user = await Users.findOne({ _id: decoded_token._id, 'tokens.token': token });

Lucendio
committed
if (!user) {
throw new Error();

Lucendio
committed
}
req.token = token;
req.user = user;

Lucendio
committed

Lucendio
committed
} catch (e) {
res.status(401).send({ error: 'Please login first.' });

Lucendio
committed
}
};
module.exports = auth;