2015-04-03 62 views
1

我有一个使用快速会话的NodeJS Express应用程序。只要会话cookie被支持,这很好。是否可以通过sessionID获得快速会话?

不幸的是,它还需要使用不支持任何形式的Cookie的PhoneGap应用程序。

我想知道:是否有可能使用sessionID获得快速会话并访问该会话中的数据?

我想我可以在会话ID追加作为由PhoneGap的应用程序,像这样发送的每一个请求的查询字符串参数:

https://endpoint.com/dostuff?sessionID=whatever

但我不知道如何告诉Express来检索会话。

+0

我不认为表达会话支持什么,但饼干,因为它一般认为,每个人都使用cookies,这些天呢。你永远不会看到任何人使用querystrings来实现持久性,那是在九十年代。 – adeneo 2015-04-03 01:42:11

回答

0

您当然可以创建一个快速路由/中间件,以窍门express-session传入请求包含会话cookie。将这样的事情会议收到的中间件:

app.use(function getSessionViaQuerystring(req, res, next) { 
    var sessionId = req.query.sessionId; 
    if (!sessionId) return res.send(401); // Or whatever 

    // Trick the session middleware that you have the cookie; 
    // Make sure you configure the cookie name, and set 'secure' to false 
    // in https://github.com/expressjs/session#cookie-options 
    req.cookies['connect.sid'] = req.query.sessionId; 
    next(); 
}); 
+0

这很好用 - 谢谢你们! – user2796982 2015-04-03 03:07:36

相关问题