【问题标题】:How not to expire user session cakephp如何不使用户会话 cakephp 过期
【发布时间】:2016-06-17 08:59:58
【问题描述】:

我正在使用 CakePHP 开发一个用于监控的应用程序,我不希望我的用户会话过期,因为即使他不使用该应用程序,用户也需要经常查看控制面板。

我找到了很多方法,但我不知道哪个是最好的......

你有什么推荐的?

提前非常感谢。 最好的问候。

【问题讨论】:

  • 您是否尝试过更改 core.php 中的 session.timeout
  • 好吧,我还没试过。我一直在阅读太多关于如何设置特定时间的内容,但我不想要它,例如我不想设置 12312312312231 分钟,我只想阻止用户会话的到期

标签: php session cakephp usersession


【解决方案1】:

转到 config/core.php 文件,像这样设置会话设置

Configure::write('Session', array(
        'defaults' => 'php',
        'Session.timeout' => '12312312312231'
    ));

现在您可以随意更改会话超时。
如果您没有设置会话超时时间,那么您需要在一段时间内通过 ajax 请求访问您的登录后功能。您需要以 1 分钟的间隔对您的登录后任何控制器功能运行一个 ajax 请求。像这样
在您的登录后控制器中创建一个函数ajax_request()。现在

setInterval(function(){
//Your ajax code
},1000);

当 ajax 请求发送到您的控制器功能时,身份验证组件总是会延长到期时间。

【讨论】:

  • 好吧,我找到了一种方法,您不必调用 ajax 请求。如果您像这样设置超时:Configure::write('Session', array( 'defaults' => 'php', 'Session.timeout' => 0 )); 它使会话“无限”
【解决方案2】:
$this->Session->destroy();

destroy 方法将删除临时文件系统中存储的会话、cookie 和所有会话数据。

用户删除,使用更好的delete

$this->Session->delete('User');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 2013-10-06
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多