Express4.js -路由只有当有一个活动的passport.js会话
Express4.js - route only if there is an active passport.js session
我使用passport.js和express4.js。我想知道是否有一种自动的方法来验证客户端是否在他试图访问视图时打开了一个带有passport.js的会话?
实际上我这样做是为了验证客户端是否可以访问url:
router.get('/[0-9]{3}/', function(req, res, next){
var path_codecs = req.originalUrl.split('/')[2];
if (!req.user) {
res.redirect('/login');
}
if (req.user.dataValues.codecs !== path_codecs) {
next();
}
res.render('decoupage')
});
我是否必须在我想要限制会话用户的每个视图上进行此验证,或者是否有更自动的方法来定义哪些视图可以访问,哪些不能访问?
您可以使用req.user
(Passport将在成功验证后设置该值)。
我通常在瘦中间件中这样使用:
function isAuthenticatedMiddleware (req, res, next) {
if (req.user) { return next(); }
next('AuthenticationError');
}
router.get('/[0-9]{3}/', isAuthenticatedMiddleware, function(req, res, next){
你可以很容易地将它添加到路由器上的所有路由中,并使用express的router.all
router.all('*', isAuthenticatedMiddleware);
相关文章:
- 将js添加到wordpress中以突出显示css活动菜单
- 结构 JS:如何防止扩展活动组
- 控制node.js应用程序's通过外部网站举办的活动
- 如何禁用typeahead:在远程typeahead.js中聚焦已填充的文本字段时处于活动状态
- jquery.nav.js活动部分高亮显示点击后停止工作
- 安卓webview活动,如何获取js返回值
- 传单.js:将活动链接到地图标记
- 如何在角度 JS 中保持会话活动
- 检查类是否处于活动状态,如果是,请运行外部.js文件?可能
- 节点.js后请求 - 保持会话活动
- HTML / JS内容的相机活动背景
- 有没有办法使用 JS 跳过下一个活动
- 覆盖Magento中的默认数据表单提交JS活动
- 如何在 Angular js 中更改活动链接的背景颜色
- 当鼠标离开区域时,或在Zurb Foundation中使用JS时,恢复到初始活动选项卡
- 从Node.js中的活动套接字重新创建http请求和响应
- Angular Js:如果我需要实时将状态从活动更改为非活动,请使用ng
- 安卓:根据上一次活动列表中的选择,修改本地静态html加载的JS
- 如何在Aurelia.JS中显示当前活动页面标题
- 为什么Backbone.js不是't绑定我的活动