41
我一直在尋找一段時間,看不到一個權威的文檔來源。當我搜索這些時,Google的第一個結果就是StackOverflow。「ensureAuthentication」「isAuthenticated」護照功能的文檔?
是否還有類似於此的其他中間件功能?
我一直在尋找一段時間,看不到一個權威的文檔來源。當我搜索這些時,Google的第一個結果就是StackOverflow。「ensureAuthentication」「isAuthenticated」護照功能的文檔?
是否還有類似於此的其他中間件功能?
雖然沒有明確記錄在任何可輕易找到的位置,但您可以看到isAuthenticated
和isUnauthenticated
標誌在https://github.com/jaredhanson/passport/blob/a892b9dc54dce34b7170ad5d73d8ccfba87f4fcf/lib/passport/http/request.js#L74的Passport代碼中設置的位置。
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
});
上面的例子有幾個問題。第3行應該是'if(req.isAuthenticated())',第9行應該是'...,ensureAuthenticated,...'檢查以下更好的示例。 https://github.com/jaredhanson/passport-local/blob/master/examples/express3-mongoose/app.js – chris
@chris感謝您的注意 - 我已經糾正了上述問題。 –
我不得不寫「return next()」才能工作。 – Elisabeth