我对session和cookie的使用还是个初学者,不太明白,所以想问一下:
<强>1。每个用户只有1个Session ID吗?
<强>2。什么是 session ID?
我尝试在 session 中存储数据,但是当我尝试存储其他数据时,它具有相同的 session ID
。那么我怎么知道这些数据属于谁呢?
我实际上想使用后端express在react.js SPA中制作一个购物车。但我不知道如何存储这个数据车。到目前为止我所做的我想将数据购物车保存到 session 中,例如product_id和product_variant
,然后根据此在数据库中调用
。 product_id和product_variant
session ID
Correct Me If I'm Wrong. Thanks
最佳答案
您应该生成 session ID,然后将其存储在数据库中,并将其附加到用户 ID。这样,当用户在网站/软件中移动时,您可以通过查找用户的 session ID 来了解用户。
您还可以记录他们的 IP 地址、浏览器信息和访问时间等信息,以使其更加安全 - 使黑客更难劫持他们的 session 信息。
另外,我唯一要提到的是,您不应该在 session 数据中存储私有(private)信息。例如,不要将其帐户 ID 或其密码/电子邮件/用户名/等存储在 session 变量中。如果您依靠 session 数据本身来告诉您用户是谁,则可以修改 session 数据并访问其他帐户。加密/随机的 session ID 可能非常独特,以至于用户几乎不可能合理地欺骗您的服务器,使其认为它们是不同的帐户。这就是为什么我们将它们存储在带有附加信息的数据库中,而不是设置其他 session 变量。
示例:
在 PHP 中,我们可以拥有 session_id(),但也可以存储 $_SESSION['setting'] 或 $_SESSION['theme_choice'] 等内容以及其他琐碎的设置,以避免每页都在数据库中查找它负载。
关于javascript - 每个用户只有 1 个 session ID 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54165878/