1.

How To Implement Jwt Authentication In Express App ? Explain With Example?

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



Discussion

No Comment Found