javascript - 每个用户只有 1 个 session ID 吗?

标签 javascript node.js session express-session

我对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/

相关文章:

javascript - 用户在输入标签中输入时运行常量函数

javascript - TypeError : object. 函数不是函数

python-3.x - 如何使用 python 和 selenium 从检查 session 和 cookie 的 URL 下载 PDF?

javascript - 注册前接受模式

javascript - 将图像存储到 localStorage

javascript - 按下按钮时动态创建的 iframe 在所有浏览器上立即消失

node.js - 无法基于 Node :8. 1 镜像为 Node 应用程序构建 Docker 容器

用于 NodeDB 的 MySQL 驱动程序 : db-mysql gives node waf error on Mountain Lion

ruby-on-rails - 如何使用 'memcached' 在面向服务的体系结构中处理用户身份验证?

PHP session ID 不保留在 iOS 应用程序中