dwyl/learn-json-web-tokens

How to exclude some routes from jwt token verification

Open

#77 opened on Sep 8, 2017

View on GitHub
 (0 comments) (0 reactions) (0 assignees)JavaScript (4,175 stars) (267 forks)batch import
help wantedquestion

Description

I am using jsonwebtoken module How to exclude a route from jwt token verification

router.use('/loginRegistration', mountAllRoutes(loginRegistration));

router.use((req, res, next) => {
const r = req;
// check header or url parameters or post parameters for token
// const token = req.body.token || req.query.token || req.headers['x-access-token'];
const token = req.body.token || req.query.token || req.headers.authorization;
// decode token
if (token) {
    // verifies secret and checks exp
    jwt.verify(token, req.app.get('superSecret'), (err, decoded) => {
        if (err) {
            // res.json({ success: false, message: 'Failed to authenticate token.' });
            return res.status(401).send({
                success: false,
                message: 'Failed to authenticate token.'
            });
        } else {
            // if everything is good, save to request for use in other routes
            r.decoded = decoded;
            next();
            // console.log(decoded);
        }
        // return {};
    });
} else {
    // if there is no token
    // return an error
    return res.status(403).send({
        success: false,
        message: 'No token provided.'
    });
}
});

router.use('/test', mountAllRoutes(testModule)); router.use('/other', mountAllRoutes(otherModule)); router.use('/users', mountAllRoutes(userModule)); router.use('/data', mountAllRoutes(dataModule));

Here Whatever I put after token verify code, it works perfect. It asks token. But which I put above jwt token verify code, for that also it asks token. I mean for user registration it says token not provided but in database user will be created.

image

Here above for user creation, it gives response "No token provided" but if I see database then that user details will be created. Please tell me how can I resolve it

Contributor guide