如何让经过身份验证的WordPress用户自动登录Moodle?

时间:2014-10-15 作者:Matt Refghi

好吧,就这样吧。我正在寻找一种使用WordPress凭据将用户登录到Moodle的方法,使用这种工作流:

用户“bbarker”已登录WordPress。他单击一个链接,将他带到Moodle中的特定页面,该页面需要身份验证。WordPress会自动在Moodle中查找“bbarker”用户,如果存在匹配项,它会在后台将其登录。从用户的角度来看,他出现在Moodle中,自动以自己的身份登录,无需输入任何内容。

我希望有一个解决方案可以利用插件实现大部分功能,但实际上,我希望需要一些开发。

2 个回复
最合适的回答,由SO网友:iyrin 整理而成

就WordPress部分而言,您需要编写一个插件来创建小部件或在WordPress站点上插入链接。以下假设您熟悉插件开发。

使用wp\\u nonce\\u url生成链接,以帮助确保WordPress用户是单击链接的用户。

请参阅:WordPress Nonces « WordPress Codex

当用户单击链接时,应提交所需的适当用户数据。例如,如果WordPress和moodle上的用户登录相同,那么您将希望获得user\\u登录。

请参阅:Function Reference/get userdata « WordPress Codex

可以使用登录身份验证令牌生成url。我不熟悉通过moodle API来实现这一点,这超出了StackExchange网络的范围,因此您必须在其他地方提出一个具体的问题。

也就是说,这里有一个通用方法示例:
-Passwordless authentication: Secure, simple, and fast to deploy ✩ Mozilla Hacks – the Web developer blog

回到WordPress相关脚本。确保插件在allowed\\u redirect\\u hosts筛选器中添加moodle主机。

请参阅:Plugin API/Filter Reference/allowed redirect hosts « WordPress Codex

此时,脚本应使用wp\\u safe\\u重定向将WordPress用户重定向到新的登录验证url。

请参阅:Function Reference/wp safe redirect « WordPress Codex

假设您解决了moodle身份验证问题,这将使您大致了解如何解决WordPress方面的问题。

Update: moodle有一个“外部数据库身份验证”插件,它似乎非常适合这种情况。同样,它超出了本网站的范围,但要学会如何使用它,你就应该做好准备。

此方法使用外部数据库表来检查给定的用户名和密码是否有效。如果用户当前不在Moodle中,将创建一个新帐户,并从外部数据库复制其信息。

请参阅:External database authentication - MoodleDocs

SO网友:Domain

您可以使用该插件,该插件为最终用户提供了在WordPress网站上输入单个用户名和密码的选项,并可以同时访问WordPress和Moodle
https://edwiser.org/bridge/extensions/single-sign-on/

结束

相关推荐

Authentication/API Questions

我们正在尝试使用S2Member来管理我们的WP站点和我们正在启动的Flash程序的成员资格。我们希望在用户登录并保持登录状态时使用S2Member对其进行身份验证。问题:Java层需要知道哪个用户登录到Wordpress(如果有的话),以便它可以将正确的数据返回到flash层。建议的解决方案:Wordpress的cookie也应该包含在Flash到Java的请求中。Java可以使用这些cookie来查询Wordpress DB以获取用户ID。我们需要知道的是:1。是否可以从数据库或文件系统获取带有coo