Created
October 3, 2018 16:48
-
-
Save HectorBlisS/ecb2ed06643617f468bb335daf829e05 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const jwt = require('jsonwebtoken'); | |
//const expressjwt = require('express-jwt'); | |
const User = require('../models/User'); | |
exports.verifyToken = (req, res, next) => { | |
// check header or url parameters or post parameters for token | |
//console.log(req.headers); | |
var token = req.body.token || req.query.token || req.headers['x-access-token'] || req.headers['authorization']; | |
// decode token | |
if (token) { | |
// verifies secret and checks exp | |
jwt.verify(token, process.env.TOKEN_GENERATOR, function(err, decoded) { | |
if (err) { | |
return res.status(500).json({ success: false, message: 'Failed to authenticate token.' }); | |
} else { | |
// if everything is good, save to request for use in other routes | |
req.decoded = decoded; | |
//save the user into req: | |
User.findById(decoded.sub) | |
.then(user=>{ | |
req.user = user; | |
next(); | |
}) | |
.catch(e=>{ | |
console.log(e) | |
next() | |
}); | |
} | |
}); | |
} else { | |
// if there is no token | |
// return an error | |
return res.status(403).send({ | |
success: false, | |
message: 'No token provided.' | |
}); | |
} | |
} | |
exports.genToken = (user)=>{ | |
const token = jwt.sign({ | |
sub: user._id, | |
username: user.email | |
}, | |
process.env.TOKEN_GENERATOR, | |
{expiresIn:"72 hours"} //si no lo pones no expira | |
); | |
return token; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment