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

JD.*_*JD. 5 node.js express passport.js

我有一个使用nodejs的应用程序,但我不通过ExpressJS服务我的页面.这是一个简单的http nodejs应用程序,我将在某个阶段迁移到nodejs.

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

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

pap*_*boy 8

Passport Strategies期望在某些渠道上输入(例如"本地"查找usernamepassword字段<OBJ>.body),但如果您直接提供这些策略要求,则可以在没有Express/Connect的情况下使用Passport.

直接查看从相关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);
Run Code Online (Sandbox Code Playgroud)

如果您提供reqres作为您自己的对象(注意您正在使用的策略的要求以及您在身份验证中使用的req/res的任何内容),您就可以完全控制.

(或者只是编写一个简单的自定义框架包装器).


Som*_*ens 1

简短版:不需要,普通护照需要加急。

长版本:从技术上讲,您可以在非快速应用程序中使用护照代码的很大一部分,但这可能会在您的授权代码中创建您不希望出现的各种边缘情况。将您的应用程序转换为 Express 也可能会更容易。