“ensureAuthentication”的文件“是经过身份验证的”护照的功能吗?

时间:2013-01-07 01:48:25

标签: express passport.js

我一直在寻找一段时间,并且看不到找到明确的文档来源。当我搜索这些内容时,第一个Google结果是StackOverflow。

还有更多类似的中间件功能吗?

2 个答案:

答案 0 :(得分:63)

虽然未在任何地方轻松找到明确记录,但您可以在https://github.com/jaredhanson/passport/blob/a892b9dc54dce34b7170ad5d73d8ccfba87f4fcf/lib/passport/http/request.js#L74的Passport代码中查看isAuthenticatedisUnauthenticated标记的设置位置。

ensureAuthenticated不是官方的,但可以通过以下方式实施:

function ensureAuthenticated(req, res, next) {
  if (req.isAuthenticated())
    return next();
  else
    // Return error content: res.jsonp(...) or redirect: res.redirect('/login')
}

app.get('/account', ensureAuthenticated, function(req, res) {
  // Do something with user via req.user
});

答案 1 :(得分:0)

返回false的原因主要是因为它在路由定义下面声明。 我正在其他文件中执行此操作,所以我这样使用

//auth check
function auth(req,res,next){
    if(req.isAuthenticated()){
        next();
    } 
    else{
        res.redirect("/fail");}
}

//routes
require("./routes/myroute")(app,auth);