关闭浏览器后退出moodle网站的问题

问题描述 投票:0回答:2

我的 moodle 网站有问题,因为用户在关闭浏览器并重新打开时会特别注销。 我将会话超时设置为 2 周

我尝试了不同的会话处理程序(memcached、redis、文件)都遇到了同样的问题

即使我在 moodle.org 上尝试过这个,当我使用我的帐户登录并关闭浏览器并重新打开它时,我已经注销了

有没有办法让会议举行?也许是对 /lip/classes/session/manager.php 的自定义?

moodle
2个回答
0
投票

Moodle 使用会话 cookie 存储“当前登录”状态 - 浏览器关闭时浏览器会自动清除该 cookie。

因此,它与 Moodle 服务器上的会话超时或关闭无关,而只是允许 Moodle 将仍处于活动状态的会话链接回特定浏览器的标识符不再存在。

直接更改此行为需要更改核心代码以将此会话存储在永久 cookie 中,而不是当前使用的会话 cookie。

或者,应该可以开发一个自定义身份验证插件,该插件可以在用户登录时创建一个永久性 cookie,然后在用户返回站点时使用它自动重新登录(使用一些额外的代码来当用户手动注销时删除 cookie)。这不会太难开发(在我的脑海中,没有研究所有细节),但你需要一些具有 PHP / Moodle 开发技能的人来编写它。


-1
投票

用户退出您的 Moodle 网站的问题可能与服务器端处理会话数据的方式有关。默认情况下,Moodle 使用基于文件的会话处理程序在服务器上存储会话数据。但是,这可能效率低下并导致性能问题,尤其是在处理大量用户或并发会话时。

您可以采取的一种方法是使用更健壮和可扩展的会话处理机制,例如您已经尝试过的 Redis 或 Memcached。但是,如果您仍然遇到会话超时问题,则可能是其他因素在起作用,例如浏览器设置或服务器配置。

要进一步调查问题,您可以尝试通过在 config.php 文件中将 $CFG->debug 变量设置为 DEBUG_DEVELOPER 来启用 Moodle 的调试模式。这将启用额外的日志记录和错误消息,可能有助于确定问题的原因。

要检查的另一件事是服务器配置,特别是 PHP session.gc_maxlifetime 设置,它确定会话的最长生命周期(以秒为单位)。默认情况下,这设置为 1440 秒(24 分钟),这可能对您的需要来说太短了。您可以尝试将此值增加到更高的值,例如您提到的 2 周会话超时。

最后,您还可以检查用户的浏览器设置,以确保他们没有设置为在退出时清除 cookie 或本地存储。某些浏览器(例如 Chrome 和 Firefox)的设置允许用户在退出时清除 cookie 和其他数据,这可能会导致您遇到的问题。

© www.soinside.com 2019 - 2024. All rights reserved.