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

我正在使用express-jwt来保护我的端点,但是我希望一个不受保护的端点在用户login时显示一些额外的信息。所以我想知道是否有方法在无保护的端点中访问这样的用户信息?

代码如下所示:

// 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}) } 

或者如果有另外一种方法来实现呢?

看看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包含每个相关的路线。