如何知道用户是否使用passport.jslogin?
我一直在阅读passport.js
信息和样本两天,但我不确定之后,我做了所有的身份validation过程。
我怎么知道我是否login,例如,我将有一个导航栏与login或注销button,有一些像下面的代码的variables?
if (login) <button>logout</button> else <button>login</button>
如果用户login, passport.js
将在请求中为express.js
每个请求创builduser
对象,您可以在任何中间件中检查是否存在:
if (req.user) { // logged in } else { // not logged in }
您可以为此创build简单的express.js
中间件,这将检查用户是否已login,如果不是,将redirect到/login
页面:
function loggedIn(req, res, next) { if (req.user) { next(); } else { res.redirect('/login'); } }
并使用它:
app.get('/orders', loggedIn, function(req, res, next) { // req.user - will exist // load user orders and render them });
如果你想在你的模板中使用它,因为你的代码示例似乎表明你可以创build一些中间件,例如:
app.use(function (req, res, next) { res.locals.login = req.isAuthenticated(); next(); });
设置护照后,将代码放置在某处。
然后在你的模板中使用它(swig示例)
{% if login %} <button>logout</button> {% else %} <button>login</button> {% endif %}