2015-04-03 41 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