对于“ensureAuthentication”文档“isAuthenticated”护照的功能呢?

2019-07-17 22:27发布

我一直在寻找了一段时间,并不能看到找到一个明确的文件来源。 当我搜索这些,首先谷歌搜索结果是StackOverflow上。

是否有更多的中间件功能与此类似?

Answer 1:

虽然没有明确记载的任何地方很容易找到,你可以看到其中的isAuthenticatedisUnauthenticated标志在护照代码在设置https://github.com/jaredhanson/passport/blob/a892b9dc54dce34b7170ad5d73d8ccfba87f4fcf/lib/passport/http/request.js #L74 。

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
});


Answer 2:

它返回false的原因主要是因为其宣称的路线定义如下。 我这样做的其他的文件,所以我使用它像这样

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

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


文章来源: Documentation for “ensureAuthentication” “isAuthenticated” passport's functions?