首页 > 解决方案 > 在moodle中通过webservice登录API

问题描述

我正在尝试将外部网站的登录 API 编码为 moodle。我不知道如何实现它。请指导我完成。我想通过 REST 网络服务创建。这样学生就可以通过该外部网站登录。

标签: phpmoodlemoodle-api

解决方案


好的,首先,确保你有配置良好的moodle

  • 启用网络服务:YOUR_MOODLE_URL/admin/settings.php?section=optionalsubsystems
  • 已启用休息协议:YOUR_MOODLE_URL/admin/settings.php?section=webserviceprotocols
  • 已启用 Moodle 移动网络服务:YOUR_MOODLE_URL/admin/settings.php?section=externalservices
  • 启用角色能力 webservice/rest:use 为 Authenticated 用户角色:一般为 YOUR_MOODLE_URL/admin/roles/define.php?action=edit&roleid=7

假设这指的是最新版本 3.5,这里是一个带有 javascript 和 axios 的示例(Axios 是用于浏览器和 node.js 的基于 Promise 的 HTTP 客户端)

axios
     .get(YOUR_MOODLE_URL + "/login/token.php", {
          params: {
              username: "YOUR_FORM_USERNAME",
              password: "YOUR_FORM_PASSWORD",
              service: 'moodle_mobile_app'
          }
       })
       .then((response) => {
           console.log(response.data)
       })
      .catch((err) => console.error(error))

或者,如果您想使用浏览器进行测试,请访问:YOUR_MOODLE_URL/login/token.php?username=YOUR_FORM_USERNAME&password=YOUR_FORM_PASSWORD&service=moodle_mobile_app

将 YOUR_MOODLE_URL 替换为您的 modle 安装的 url,将 YOUR_FORM_USERNAME 和 YOUR_FORM_PASSWORD 替换为有效凭据。

有了这个,您可以获得用户登录的令牌以在 moodle 中执行任何操作。


推荐阅读