有没有办法使用express-jwt访问nodejs中未受保护的端点中的jwt用户信息?

时间:2015-06-01 09:06:37

标签: node.js express jwt

我使用express-jwt来保护我的端点,但是如果用户已登录,我想要一个不受保护的端点来显示一些额外的信息。所以我想知道是否有在不受保护的端点中访问此类用户信息的方法?

代码如下:

// unprotected endpoint
router.get('/:productId', function(req, res) {
    // some ways to get user info??
    if (req.user.userId) {
        // add some extra fields into returning_data
        // something like purchase history
    }
    res.json({data: returning_data})
}

或者,如果有其他方法可以实现这一目标?

1 个答案:

答案 0 :(得分:2)

查看code for express-jwt,如果您在express-jwt设置上为所需路由传递选项credentialsRequired: false,即使令牌不存在,也应该允许访问。

因此,例如:

var expjwt = require('express-jwt');

app.use('/private', expjwt({ secret: "sssshhhhh!" }), apiRoutesPrivate);
app.use('/public', apiRoutesPublic);
app.use('/publicwithuser', expjwt({ secret: "sssshhhhh!", credentialsRequired: false }), apiRoutesPublicWithUser);

...其中apiRoutesPrivate / Public / PublicWithUser包含每个的相关路线。