我moodle LMS
在三个不同的国家(例如:印度、美国、欧洲)。对于这些站点,他们有单独的管理员。假设我是主要管理员,我希望能够一次登录管理所有网站。
如果我登录Indian LMS并选择America LMS in DROP DOWN
,那么会话应该转移到 America LMS。有什么解决办法吗?
您将遇到 cookie 域限制作为您的第一个主要障碍。本质上,您无法从发布它的域以外的域读取登录 cookie(会话工作所必需的),因此us-foo.com上的 moodle 实例将永远无法从eu-bar.com。
解决此问题的最简单方法是使用单独的登录表单。提交时,使用 JavaScript 打开隐藏的 iFrame 到所有三个站点的登录页面,用户名和密码通过GET
参数传递。Moodle 本身可能不支持使用GET
;发送登录凭据。您可能需要编辑登录脚本。
不过,有一个关于使用 Moodle 进行此操作的论坛主题 -你可能很幸运。
但无论如何,要使这样的登录多路复用 hack 起作用,这意味着您必须在三个站点之间保持管理员用户名和密码不变。如果它们都从同一个数据库运行,您可以使用触发器在数据库中强制执行此操作;否则,您将需要更改密码更改脚本以将这些更改写入远程数据库。
这是一项严肃的事业吗?有点儿。不幸的是,它不是一个非常强大的解决方案,并且在更新等方面可能非常脆弱。您可能会发现最好的选择是单独登录,特别是考虑到这些黑客不容易嵌入到站点的主登录中,并且您需要使用类似的临时同步来进行日志记录也可以通过网络进行。
如果您的网站是同一域的子域,您应该考虑阅读以下内容: PHP Sessions across sub domain
为主域和所有子域设置cookie。因此,您可以从us.foo.com和eu.foo.com读取相同的 cookie
另外,您应该有一个唯一的用户数据库或多个同步(无论如何我更喜欢第一个选项)。