每个用户是否只有一个会话ID?

时间:2019-01-13 03:33:04

标签: javascript node.js session express-session

我仍然是使用会话和cookie的初学者,对此我不理解,所以我想问:

1。每个用户是否只有1个会话ID?

2。什么是会话ID?

我试图在会话中存储数据,但是当我尝试存储其他数据时,它具有相同的Session ID。那么我怎么知道这些数据属于谁呢?

我实际上想使用后端快递在react.js SPA中创建购物车。但我不知道如何存储此数据购物车。到目前为止,我要做的是将数据购物车保存到会话中,例如product_id and product_variant,然后基于此product_id and product_variant在数据库中调用此Session ID

  

纠正我,如果我错了。谢谢

1 个答案:

答案 0 :(得分:1)

您应该生成会话ID,然后将其存储在数据库中并将其附加到用户ID。这样,当用户在网站/软件中移动时,他们会通过查找会话ID来了解用户。

您还可以记录诸如其IP地址,浏览器信息和访问时间之类的内容,以使其更加安全-使得黑客更难劫持其会话信息。

此外,我唯一要提及的是您不应该在会话数据中存储私有信息。例如,请勿将其帐户ID存储在会话变量中或将其密码/电子邮件/用户名/等存储。如果您依靠会话数据本身来告诉用户是谁,则可以修改会话数据并访问其他帐户。加密/随机化的会话ID可能是如此独特,以至于用户几乎不可能合理地欺骗您的服务器以使其认为它们是另一个帐户。因此,这就是为什么我们将它们存储在具有附加信息的数据库中,而不是设置其他会话变量的原因。

示例:

在PHP中,我们可以拥有session_id(),但还可以存储诸如$ _SESSION ['setting']或$ _SESSION ['theme_choice']之类的内容以及其他琐碎的设置,以防止在数据库的每一页中查找它加载。