我希望在API中创建一些路由,根据在MongoDB中定义的用户角色来显示不同的数据。这是目前我所拥有的一部分样例代码,已经可以正常工作...
router.get('/test', passport.authenticate('bearer', {session: false}), function (req, res) {
if (req.user.role == "premium") {
return res.send('you can see this content');
}
else {
return res.send('you can not see this content');
}
})
然而,最终目标是向用户呈现某些内容,即使他们未登录或未获得正确角色的认证。
router.get('/test', passport.authenticate('bearer', {session: false}), function (req, res) {
if (req.user.role == "premium") {
return res.send('this is premium content');
}
else {
// could be hit by another role, or no user at all
return res.send([some truncated version of the premium content]);
}
})
我本以为我会想出如何操作,但我不知道如何指定相同的路由,在请求中没有任何授权头的情况下可能会被命中。
在 Passport.js/Express 中是否可能实现这一点?