【发布时间】:2014-10-30 13:44:00
【问题描述】:
我正在努力将具有 NodeJS + Express 后端的现有 Web 应用程序调整为 PhoneGap / Steroids 应用程序。目前,Web 应用程序的身份验证由 Passport (http://passportjs.org/) 使用会话处理。
app.use( passport.initialize() );
app.use( passport.session() );
在浏览器中效果很好。不幸的是,会话 cookie 似乎在 PhoneGap 中不起作用。所以发送到服务器的请求只会被拒绝。
PhoneGap 的推荐解决方案是使用令牌策略,其中向服务器发出的每个请求都包含一个唯一令牌,就像在 api 端点中一样。
所以,这就是我想知道的:
是否可以调整 passport.session() 以便如果没有找到会话 cookie,它会检查 req.token 并对此进行授权?
我注意到已经有一些基于令牌的 Passport 策略可用。 (例如https://www.npmjs.org/package/passport-http-bearer)然而,所有这些策略似乎都假设会话不会被使用,并且被关闭。我真正需要的是同时使用两者,因此如果一个身份验证失败(例如会话),它可以通过并检查另一个身份验证(令牌)。
有没有人实现过类似的东西?任何建议/指针将不胜感激。
【问题讨论】:
标签: javascript node.js authentication express passport.js