简体   繁体   中英

How to implement jwt verify token in node js

I tried to implement jwt token generation in node js.I got jwt token but how to validate token using node js crud operation.but I got token jwt verfiy code using callback function.without call back function used to implement async/awit function implement.

index.js

router.post('/', async (req, res) => {
    (async function() {
        try {
          await client.connect();
          console.log("Connected correctly to server");
          const db = client.db('olc_prod_db');

          //Validation
          const { error } = validate.validate(req.body);
          if (error)
          {
            return res.status(400).send(error.details[0].message);
          }
          else
          {
            const check_login = req.body
            const r = await db.collection('UserRegistration').find().toArray();
            r.forEach(element => {
                if(element['username'] == check_login['username'])
                {
                    const token = get_token.validate(req.body)
                    res.send({"token ":token})
                }
                else 
                {
                    return res.send(401,"Un Authorized");
                }
            });

          }
          client.close();
        } catch(err) {
          console.log(err.stack);
        }
      })();

  });

authtoken.js

var jwt = require('jsonwebtoken')
function get_token(userdata)
{

    var accessToken = jwt.sign(userdata, 'secretkey', {
        //Set the expiration
        expiresIn: 3600 //we are setting the expiration time of 1 hr. 
    });
    //send the response to the caller with the accesstoken and data
    console.log('Authentication is done successfully.....');
    return accessToken

}





exports.validate = get_token;
const jwt  = require('jsonwebtoken')
const config = require('../../config/default')

function verifyjwt(req,res,next){
    const token = req.headers['authorization']
    if(!token) return res.status(401).json('Unauthorize user')

   try{
        const decoded = jwt.verify(token,config.secret);
        req.user = decoded
        next()

   }catch(e){
    res.status(400).json('Token not valid')
   }
}

module.exports = verifyjwt
const CONST = require('../../config')
exports.validJWTNeeded = (req, res, next) => {
    if (req.headers['authorization']) {
        try {
            let authorization = req.headers['authorization'].split(' ');
            if (authorization[0] !== 'Bearer') {
                return res.status(401).send('invalid request'); //invalid request
            } else {
                req.jwt = jwt.verify(authorization[1], CONST.SECRET);
                return next();
            }
        } catch (err) {
            return res.status(403).send(); //invalid token
        }
    } else {
        return res.status(401).send('invalid request');
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM