2013-01-07 35 views

回答

61

雖然沒有明確記錄在任何可輕易找到的位置,但您可以看到isAuthenticatedisUnauthenticated標誌在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 
}); 
+1

上面的例子有幾個問題。第3行應該是'if(req.isAuthenticated())',第9行應該是'...,ensureAuthenticated,...'檢查以下更好的示例。 https://github.com/jaredhanson/passport-local/blob/master/examples/express3-mongoose/app.js – chris

+1

@chris感謝您的注意 - 我已經糾正了上述問題。 –

+1

我不得不寫「return next()」才能工作。 – Elisabeth