2014-05-20 41 views
1

我想構建一個簡單的sails應用程序,該應用程序利用簽名的cookie存儲會話數據,而不是任何類型的服務器端數據存儲。到目前爲止,我的閱讀已經導致我調查Expresses' cookieSession,這可能會成爲候選人 - 因爲風帆聲稱它很大程度上依賴於快速會議的實施。以Express爲基礎的基於Cookie的會話

這可能嗎?表達'cookieSession的路要走嗎?這會在配置中的config/session.js中處理嗎?如果是的話如何?任何我可能會利用的例子?

非常感謝您爲我提供的任何幫助!

編輯

node-client-session是另一種選擇,看起來有趣。有誰知道這是否已經/可以在帆的情況下實施?

UPDATE

答案下面似乎是在正確的軌道上,我得到一個cookie的使用這種方法的瀏覽器中顯示出來。但不幸的是通過創建cookieSession的cookie對象似乎不向它提出的方法調用發揮出色:

TypeError: Object #<Object> has no method 'resetMaxAge' 
at ServerResponse.res.end (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/session.js:282:19) 
at ServerResponse.res.send (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/lib/response.js:152:8) 
at fn (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/lib/response.js:794:10) 
at /Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/ejs-locals/index.js:134:7 
at Object.exports.renderFile (/Users/huff/development/node/apps/authservice/node_modules/ejs/lib/ejs.js:317:3) 
at SailsView.module.exports [as engine] (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/ejs-locals/index.js:85:7) 
at SailsView.View.render (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/lib/view.js:76:8) 
at Function.app.render (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/lib/application.js:506:10) 
at ServerResponse.res.render (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/lib/response.js:798:7) 
at /Users/huff/development/node/apps/authservice/config/404.js:35:9 
at /Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/ejs-locals/index.js:134:7 
at Object.exports.renderFile (/Users/huff/development/node/apps/authservice/node_modules/ejs/lib/ejs.js:317:3) 
at SailsView.module.exports [as engine] (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/ejs-locals/index.js:85:7) 
at SailsView.View.render (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/lib/view.js:76:8) 
at Function.app.render (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/lib/application.js:506:10) 
at ServerResponse.res.render (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/lib/response.js:798:7) 
at Object.pageNotFound [as 404] (/Users/huff/development/node/apps/authservice/config/404.js:30:7) 
at Object.handle (/Users/huff/development/node/apps/authservice/node_modules/sails/lib/express/index.js:198:21) 
at next (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/node_modules/connect/lib/proto.js:190:15) 
at Object.favicon [as handle] (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/favicon.js:77:7) 
at next (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/node_modules/connect/lib/proto.js:190:15) 
at resume (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/static.js:60:7) 
at SendStream.error (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/static.js:73:37) 
at SendStream.EventEmitter.emit (events.js:95:17) 
at SendStream.error (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/node_modules/send/lib/send.js:147:51) 
at SendStream.onStatError (/Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/node_modules/send/lib/send.js:248:48) 
at /Users/huff/development/node/apps/authservice/node_modules/sails/node_modules/express/node_modules/send/lib/send.js:320:26 
at Object.oncomplete (fs.js:107:15) 

而這些問題都是貫穿始終。如果我在表達式代碼中註釋掉'resetMaxAge',那麼通過調用save方法得到相同的結果。有關如何讓帆與這個快遞功能打好關係的想法?

回答

2

通過創建新的配置文件,您可以輕鬆訪問底層快速引擎。

//./config/express.js 
module.exports.express = { 
    customMiddleware: function (app) { 
     app.use(connect.cookieParser()); 
      app.use(connect.cookieSession({ secret: 'tobo!', cookie: { maxAge: 60 * 60 * 1000 }})); 

      //or even use passportjs. 
      app.use(passport.initialize()); 
     app.use(passport.session()); 



    } 
} 
+0

非常感謝,明天我會實施這個。至於護照,護照會話是否完全序列化爲cookie?因爲這個應用程序不打算有和DB或內存存儲。快速瀏覽文檔似乎表明它沒有。 – Jeremythuff

相關問題