我有一个moodle系统。我想在我的Moodle代码中调用wp_signon
函数。这个自动从Moodle登录用户进入WordPress,以便用户可以查看我们的私人博客帖子。从他的Moodle登录,我知道用户的WordPress凭据。
要调用此函数,我需要包含wp-load.php
文件。我相信wp-load.php
包含所有wordpress功能。 wordpress和Moodle都有get_users()
和get_context()
个函数。这会抛出一个错误,说不能声明2个具有相同名称的函数。此外,get_users()
未使用get_context()
和wp_signon()
函数。
我该如何解决这个问题?是否有任何其他文件可以包含而不是wp_load.php
?
答案 0 :(得分:0)
没有简单的方法可以做到这一点,因为正如你所说,Moodle和WordPress都有冲突的函数名:get_users()和get_context(),所以你不能方便地加载一个系统。其他
以下是解决这个问题的一种方法:
当用户登录Moodle时,会自动触发对您的WordPress网站的远程HTTP调用,请求该用户也登录。
编写一个WordPress插件,用于验证来自Moodle的登录请求,并将用户登录。您可能需要查看wp_signon()
和wp_set_auth_cookie()
函数,并查看特定的身份验证方式用户可以通过编程方式完成。
听起来非常简单,但如果你想让整个事情变得安全,那么实施这个非常复杂。
我建议您查看OAuth2,这是如何安全实施远程授权的标准。这个想法与我上面写的相似,但它有更多关于如何安全验证请求的详细信息。