Answer»
- Create a FOLDER called ‘keys’ inside project folder.
- Install some dependencies as following:
Npm install jsonwebtoken –save
- Add the login ROUTER routes/index.js
router.post('/login, function(req, res) { // find the user User.findOne({ name: req.body.username }, function(err, res) { if (err) throw err; if (!res) { res.json({ success: false, message: Login FAILED.' }); } else if (res) { // check if password matches if (res.password != req.body.password) { res.json({ success: false, message: Login failed. Wrong password.' }); } else { var token = jwt.sign(res, app.get('superSecret'), { expiresInMinutes: 1600 }); // return the information including token as JSON res.json({ success: true, message: 'Valid token!', token: token }); } } }); });
- Use the token in application
jwt = require("express-jwt"); app.use(function(req, res, NEXT) { var token = req.body.token || req.query.token || req.headers['x-access-token']; if (token) { jwt.verify(token, app.get('superSecret'), function(err, DECODED) { if (err) { return res.json({ success: false, message: 'Invalid token.' }); } else { req.decoded = decoded; next(); } }); } else { return res.status(403).send({ success: false, message: 'No token given.' }); } });
Npm install jsonwebtoken –save
|