【发布时间】:2014-07-08 04:24:53
【问题描述】:
我想构建一个简单的sails 应用程序,该应用程序利用签名的cookie 来存储会话数据,而不是任何类型的服务器端数据存储。到目前为止,我的阅读使我调查了Expresses' cookieSession,它看起来像是一个可能的候选者——因为sails 表示它严重依赖于快速会话的实现。
这可能吗? Expresses 的 cookieSession 是要走的路吗?这会在配置中的 config/session.js 中处理吗?如果是这样怎么办?有什么我可以利用的例子吗?
提前非常感谢您提供的任何帮助!
编辑
node-client-session 是另一个看起来很有趣的选项。有谁知道这是否已经/可以在帆的背景下实施?
更新
下面的答案似乎在正确的轨道上,我正在使用这种方法在浏览器中显示一个 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)
这些问题贯穿始终。如果我在 expres 代码中注释掉“resetMaxAge”,那么我会通过调用 save 方法得到同样的结果。关于如何让帆与此快速功能一起发挥出色的想法?
【问题讨论】:
标签: express session-cookies sails.js