【问题标题】:How to use headers for session key rather than a cookie in node's Sails.js如何在节点的 Sails.js 中使用会话密钥的标头而不是 cookie
【发布时间】:2013-07-27 15:03:15
【问题描述】:

显然,使用 cookie 在使用浏览器等时存储会话 ID 最有意义,但我使用 Sails 只是为了构建我的 RESTful API,我想使用标头(X-Session-Identifier或其他东西)向 Sails 提供会话 ID(这也可以作为响应中的标头返回,所以我知道然后再发送什么)。

我假设我需要编写一些中间件,但我在文档中找不到可以挂钩的任何地方。

是否需要删除 connect 的 cookieSession 中间件并替换为我自己的?

【问题讨论】:

    标签: javascript node.js http http-headers sails.js


    【解决方案1】:

    Sails.js 0.9.x

    这在任何地方都没有记录,但您应该能够通过执行以下操作为底层 express 对象提供自定义中间件:

    config/express.js

    var sessionware = require('mycoolmiddleware');
    modules.exports.express = {
        customMiddleware: function (app) {
            app.use(sessionware.sessionHeader());
        }
    };
    

    Sails.js 在这里处理这个问题:https://github.com/balderdashy/sails/blob/v0.9.16/lib/express/index.js#L162

    Sails.js 0.10.x

    从 Sails.js 0.10.x 开始,他们现在在此处记录如何提供自定义中间件:http://sailsjs.org/#/documentation/concepts/Middleware

    【讨论】:

    • 我一直在到处寻找如何做到这一点。谢谢!
    • 链接已损坏。你有一个如何在sails中实现这个的例子吗?
    • 感谢您的提醒!我已经更新了我的答案以反映 Sails.js 0.10.x 中的官方文档,并且我更新了链接以指向更永久的东西作为标记的 Sails.js 0.9.16 版本。
    猜你喜欢
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2021-04-20
    • 2016-04-30
    • 2015-02-25
    • 1970-01-01
    • 2014-07-20
    相关资源
    最近更新 更多