我有一个使用nodejs的应用程序,但我没有通过ExpressJS提供我的页面。这是一个简单的http nodejs应用程序,我将在某个阶段迁移到nodejs。
然而,我正在玩Passportjs,目前我正在获取'passport.intitalize()中间件未使用'错误,这些错误来自文档提及'connect'和'Express'用法。
我可以在没有Expressjs的情况下使用passportjs吗?
答案 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);
如果您提供req
和res
作为您自己的对象(请注意您正在使用的策略的要求以及您使用req/res in authenticate的任何内容),你有完全控制权。
(或者只写一个简单的custom framework wrapper)。
答案 1 :(得分:1)
看起来hapi是一个选项:
答案 2 :(得分:0)
简短版本:不,常规护照使用需要快递。
长版本:技术上可以在非快递应用程序中使用大部分护照的代码,但这可能会产生您不想要的各种边缘情况在您的身份验证代码中。将您的申请转换为快递也可能更容易。