可以在没有Expressjs的情况下使用Passport.js吗?

时间:2014-04-29 22:13:31

标签: node.js express passport.js

我有一个使用nodejs的应用程序,但我没有通过ExpressJS提供我的页面。这是一个简单的http nodejs应用程序,我将在某个阶段迁移到nodejs。

然而,我正在玩Passportjs,目前我正在获取'passport.intitalize()中间件未使用'错误,这些错误来自文档提及'connect'和'Express'用法。

我可以在没有Expressjs的情况下使用passportjs吗?

3 个答案:

答案 0 :(得分:7)

Passport Strategies期望某些渠道的输入(例如,username上的“password<OBJ>.body字段”,但是如果您提供这些策略要求直接你可以使用Passport,没有Express / Connect。

直接查看相关Passport代码中的评论:

https://github.com/jaredhanson/passport/blob/master/lib/authenticator.js#L146

passport.authenticate('local', function(err, user) {
  if (!user) { return res.redirect('/login'); }
  res.end('Authenticated!');
})(req, res);

如果您提供reqres作为您自己的对象(请注意您正在使用的策略的要求以及您使用req/res in authenticate的任何内容),你有完全控制权。

(或者只写一个简单的custom framework wrapper)。

答案 1 :(得分:1)

答案 2 :(得分:0)

简短版本:不,常规护照使用需要快递。

长版本:技术上可以在非快递应用程序中使用大部分护照的代码,但这可能会产生您想要的各种边缘情况在您的身份验证代码中。将您的申请转换为快递也可能更容易。