将会话从一个网站转移到另一个网站


transfer session one website to another website

我在三个不同的国家拥有moodle LMS(例如:印度、美国、欧洲)。对于这些网站,他们有个人管理员。假设我是主管理员,我希望能够通过一个登录来管理所有网站。

如果我登录印度LMS并在DROP DOWN中选择美国LMS话转移到美国LMS。有什么解决办法吗?

如果您的网站是同一域的子域,您应该考虑阅读以下内容:跨子域的PHP会话

为主域和所有子域设置cookie。因此,您可以从us.foo.comeu.foo.com中读取相同的cookie

另外,您应该有一个唯一的用户数据库或多个同步的用户数据库(无论如何,我更喜欢第一个选项)。

您将遇到cookie域限制,这是您的第一个主要障碍。本质上,您不能从发布登录cookie的域以外的域读取登录cookie(会话工作所需的),因此us foo.com上的moodle实例将永远无法从eu bar.com读取登录cookie。

绕过这一点最简单的方法是使用单独的登录表单。提交时,使用JavaScript打开所有三个网站的登录页面的隐藏iFrame,用户名和密码通过GET参数传递。Moodle可能本机不支持使用GET发送登录凭据;您可能需要编辑登录脚本。

不过,论坛上有一条关于与Moodle一起做这件事的帖子——你可能很幸运。

但在任何情况下,像这样的登录多路复用破解都意味着你必须在三个网站之间保持管理员用户名和密码不变。如果触发器都在同一个数据库中运行,则可以使用触发器在数据库中强制执行此操作;否则,您将需要更改密码更改脚本,以便将这些更改写入远程数据库。

这是一项严肃的任务吗?有点不幸的是,它不是一个非常强大的解决方案,而且在更新等方面可能非常脆弱。你可能会发现,最好的选择是单独登录,特别是考虑到这些黑客不容易嵌入到网站的主登录中,而且你需要使用类似的特别同步来使注销也能在网络上进行。