c - 实现 session 管理

标签 c session session-management

我正在实现 session 管理,并且当前在数据库中存储 4 种类型的信息:

  1. 用户 ID
  2. session_id(哈希)
  3. insertion_time(超时)
  4. 持久性(如果用户 有一个持久性 cookie)

用户可以使用不同的设备打开多个 session 。如果用户注销,我如何知道应该删除哪些 session ?

哪些独特信息通常与我已经获得的信息一起存储? IP 地址并不能真正发挥作用,因为它可以共享。我应该存储浏览器信息,但如果相同怎么办?

最佳答案

您应该只使用单个 session ID/哈希来识别 session 。

当用户登录(例如使用用户名/密码)时,您将告诉他们他们的 session ID/哈希是什么。

当用户浏览时,他们会告诉您每个页面加载的 session ID/哈希值。这就是您如何知道这是现有登录用户,而不是某个随机的新用户。

当用户尝试注销时,他们仍然会告诉您他们的 session ID/哈希值。您可以使用它来查找并删除正确的单个 session 。

关于c - 实现 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515319/

相关文章:

c++ - 关于Linux .so文件无法链接到main.cpp文件

编译器不允许在 C 中使用 exit() 函数

spring - 无法写入 JSON : could not initialize proxy - no Session error

session - 如何在 Plug 中设置 session 和 CSRF 保护?

java - springmvc 验证包含 userobject 的 httpsession

Spring 安全 : Redirect to invalid-session-url instead of logout-success-url on successful logout

C程序中的C++头文件和实现代码

c - 如何使用指针来使用嵌入式 C 操作内存中特定寄存器的位

python - 上下文处理器,传递一个不存在的 session

php - 从 docker nginx/php-fpm 安装在本地卷(Mac)上的 Laravel 无法写入 session 文件