backend/helpers/authJwt.js

37 lines
703 B
JavaScript

const jwt = require('jsonwebtoken');
const { jwt_secret } = require('../config/config');
module.exports = {
authenticate,
generateToken,
};
function generateToken(user) {
const payload = {
username: user.username,
email: user.email
};
const options = {
expiresIn: '30d',
};
return jwt.sign(payload, jwt_secret, options);
}
function authenticate(req, res, next) {
const token = req.get('Authorization');
if (token) {
jwt.verify(token, jwt_secret, (err, decoded) => {
if (err) return res.status(401).json(err);
req.decoded = decoded;
next();
});
} else {
return res.status(401).json({
error: 'No token provided, must be set on the Authorization Header',
});
}
}