【问题标题】:Implementation of "remember me" in code igniter在codeigniter中实现“记住我”
【发布时间】:2009-12-10 19:30:25
【问题描述】:

我如何记住会话,即使在浏览器关闭后也是如此。

除了延长 cookie 的过期时间之外,还有其他选择吗?

我正在使用代码点火器

【问题讨论】:

    标签: security web-applications session codeigniter


    【解决方案1】:

    我基于this article 实现我的版本。本文解释了一个概念、安全性以及如何实现持久登录 cookie。

    我所做的总结是:

    1. 创建一个表来保存持久性 cookie 系列和令牌(需要系列来检测 cookie 是否被盗)。
    2. 我编写模型来创建所需的 cookie(与正常 CI 会话分开)。
    3. 模型也做数据库 读/写使用的持久化 饼干。
    4. 我将此模型集成到现有的用户模型中 正常的身份验证。
    5. 当用户进入需要宽松认证的页面时,没有 正常的 CI 会话,但有 在他的持久cookie会话 浏览器,我的代码会识别它 因为同一系列和令牌也 存储在数据库中。用户 将有一个正常的 CI 会话,但是 带有此会话的标志 从持久 cookie 生成, 不是来自登录表单。
    6. 当用户转到需要 CI 会话的“敏感”页面时 没有持久标志,然后是用户 将被记录,并发送到登录 表格(如果您使用雅虎邮件,那么它 与此类似)。这通常是 用户可以做的页面 添加/编辑/删除,并查看敏感信息 信息。

    希望对你有所帮助。

    【讨论】:

      【解决方案2】:

      cookie 是我怀疑的唯一解决方案。正如你所说,你需要延长时间。但是,如果您想改用 PHP 会话,则可以使用 php.ini 文件延长会话的寿命,但我认为为此目的使用会话不是一个好主意,因为会话的数据存储在服务器上而不是单个用户上。

      谢谢

      【讨论】:

      • 其他可以是数据库甚至是文本文件。重要的是您将如何跟踪用户。
      • 不,您将始终需要 cookie 来进行持久会话。您还能如何将客户端与服务器上的会话变量相匹配?
      猜你喜欢
      • 2015-08-06
      • 2010-09-30
      • 2013-12-16
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 2011-08-02
      • 2016-04-11
      • 2021-04-16
      相关资源
      最近更新 更多