【问题标题】:CakePHP session timeout problemCakePHP 会话超时问题
【发布时间】:2011-05-09 12:11:32
【问题描述】:

我在 CakePHP 中的身份验证有问题。无论我尝试什么,Cake 要么在每次请求后告诉我我已取消身份验证,要么我仍然通过身份验证,即使我之前关闭了浏览器。

我会用几句话解释我的身份验证系统是如何工作的。用户登录,是否选中 remember me 复选框。如果选中,我将创建一个 cookie,以便用户在下次访问该站点时自动登录。基本上,当用户关闭他的浏览器时,我需要删除 Cake 存储在浏览器中的所有会话 cookie。这样,当用户回来时,如果他不想被记住,他会看到登录页面,或者如果他选择存储它,则自动从 remember me cookie 登录。

问题是我同时使用了 core.php 中的 Session.timeout 和 Security.level,但没有得到积极的结果。如果我将超时设置为 0,Cake 将在每次请求后取消我的身份验证,因此我无法查看任何页面。如果我为 timeout 设置任何其他值,用户可能会关闭浏览器,当他重新打开它时,他仍然可以登录,因为 Cake 会话没有过期。

总之,如何在浏览器关闭时自动删除会话cookie?

【问题讨论】:

    标签: authentication cakephp session-timeout session-cookies


    【解决方案1】:

    看看这篇文章也许对你有帮助,我将类似的东西用于其他目的。

    http://bakery.cakephp.org/articles/admad/2009/09/02/how-to-bend-cakephp-s-session-handling-to-your-needs

    见:ini_set('session.cookie_lifetime', 0);

    【讨论】:

    • 谢谢!不过,有一件事仍然困扰着我。 Cake 的 Session.timeout 与 php ini 的 session.cookie_lifetime 是一样的吗?另外,我的 Session.save 应该设置为什么值? “蛋糕”还是“php”?
    • 如何在文章中解释您必须创建一个带有会话配置的 php 文件并将其保存在“config”文件夹中。例如,如果您将其称为 'my_session',则必须编写 Configure::write('Session.save', 'my_session');在“核心”文件中。查看 cake_session.php 以了解 Session.timeout 在 cakephp 中的工作原理
    • 好的。非常感谢您的快速回复!
    猜你喜欢
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多