2014-04-29 210 views
3

我有一个应用程序使用nodejs,但我不通过ExpressJS服务我的页面。这是一个简单的http nodejs应用程序,我将在某个阶段迁移到nodejs。是否可以在没有Expressj的情况下使用Passport.js?

但是,我正在使用Passportjs,目前我正在从文档中提到“connect”和“Express”用法中获得'passport.intitalize()中间件未使用'错误。

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

回答

1

简短版本:否,快递是常规护照使用所必需的。

长版本:您可以在非快速应用程序中技术性地使用护照代码的大部分,但这可能会创建您在授权代码中需要的各种边缘案例不需要。只是将您的应用程序转换为快车也可能更容易。

5

护照战略期望在某些渠道的投入(例如“本地”将查找<OBJ>.bodyusernamepassword领域),但如果你为这些战略要求直接与你可以使用护照就好了,没有任何明示/连接。

直接从相关的护照代码解除注释请看:

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)。

相关问题