我有一个应用程序使用nodejs,但我不通过ExpressJS服务我的页面。这是一个简单的http nodejs应用程序,我将在某个阶段迁移到nodejs。是否可以在没有Expressj的情况下使用Passport.js?
但是,我正在使用Passportjs,目前我正在从文档中提到“connect”和“Express”用法中获得'passport.intitalize()中间件未使用'错误。
我可以在没有Expressj的情况下使用passportjs吗?
我有一个应用程序使用nodejs,但我不通过ExpressJS服务我的页面。这是一个简单的http nodejs应用程序,我将在某个阶段迁移到nodejs。是否可以在没有Expressj的情况下使用Passport.js?
但是,我正在使用Passportjs,目前我正在从文档中提到“connect”和“Express”用法中获得'passport.intitalize()中间件未使用'错误。
我可以在没有Expressj的情况下使用passportjs吗?
简短版本:否,快递是常规护照使用所必需的。
长版本:您可以在非快速应用程序中技术性地使用护照代码的大部分,但这可能会创建您在授权代码中需要的各种边缘案例不需要。只是将您的应用程序转换为快车也可能更容易。
护照战略期望在某些渠道的投入(例如“本地”将查找<OBJ>.body
username
和password
领域),但如果你为这些战略要求直接与你可以使用护照就好了,没有任何明示/连接。
直接从相关的护照代码解除注释请看:
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)。