有没有办法使用 express-jwt 访问 nodejs 中不受保护的端点中的 jwt 用户信息?
Is there a way to access jwt user information in unprotected endpoint in nodejs using 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})
}
或者是否有其他方法可以实现此目的?
查看 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 包含每个的相关路由。
我正在使用 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})
}
或者是否有其他方法可以实现此目的?
查看 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 包含每个的相关路由。