有没有办法使用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包含每个相关的路线。
- 改变express + node.js + ejs的代码包装types
- 如何使用Seneca和Express发送响应
- Express.js中的默认路由
- Node.js(使用socket.io和express)抛出“events.js:71 throw arguments ; //未处理“错误”事件“
- 使用angular和express-jwt实现刷新令牌
- 如何防止多个Socket.io事件监听器
- 为每个路线重新加载浏览器(Express + gulp + Browsersync)
- Express.js中的EJS – Express Helpers无法正常工作 – (app)处于require状态
- Node,Express,Ajax和Jade示例