0

所以我有一个非常标准的节点快速设置,它使用护照和承载(oauth-client-pass)和本地策略

我还使用标准连接确保登录这是我的路线,第一个和第二个工作应该是第三个是我无法正确完成的工作

app.get('/admin', ensureLoggedIn(), index.admin);
app.get('/api/endpoint',passport.authenticate('bearer', { session: false }), index.endpoint);
app.get('/account', ensureLoggedInApi , index.account);

在哪里

function ensureLoggedInApi(req, res, next) {
if(req.query.access_token)
    passport.authenticate('bearer', { session: false });
 else
    ensureLoggedIn();
next();
}
4

1 回答 1

2

这两个函数都返回一个中间件处理程序,因此您首先需要调用它们(产生中间件处理程序),然后调用处理程序本身:

function ensureLoggedInApi(req, res, next) {
  if (req.query.access_token) {
    passport.authenticate('bearer', { session: false })(req, res, next);
  } else {
    ensureLoggedIn()(req, res, next);
  }
}
于 2013-11-08T18:29:25.843 回答