骨干和cookie /会话

时间:2015-06-28 16:10:58

标签: javascript node.js session backbone.js cookies

我已将jquery配置为包含每个请求的Cookie标头:

$.ajaxSetup({
    cache: false,
    xhrFields: {
        withCredentials: true
    }
});

在服务器端,我使用Express运行Node。 会话使用快速会话中间件和Mongostore插件进行管理。

在添加xhrFields配置之前,我注意到对于每个请求,新会话都存储在数据库中。 我检查了请求标头,发现没有cookie标头。

如上所述配置ajax之后,我注意到服务器端仍存储了太多会话。

问题是Backbone发出的OPTIONS请求。 我检查了此请求的标头,这些请求中没有包含会话信息。由于没有会话ID被发送到服务器,因此服务器创建并存储新的会话ID。它还尝试在客户端上设置一个新cookie,这将改变客户端的会话ID。

我看到两个选项:

  1. 以某种方式配置ajax以发送所有请求的cookie信息。
  2. 禁用选项路由上的会话中间件(这意味着我必须在所有需要会话的路由中包含中间件,而不是将其包含在所有其他路由中)。
  3. 我将实施后者。但也许有更好的解决方案?

0 个答案:

没有答案