php - 在moodle中通过webservice登录API
问题描述
我正在尝试将外部网站的登录 API 编码为 moodle。我不知道如何实现它。请指导我完成。我想通过 REST 网络服务创建。这样学生就可以通过该外部网站登录。
解决方案
好的,首先,确保你有配置良好的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 中执行任何操作。
推荐阅读
- java - 以特定格式将字符串转换为 DateTime 对象(例如,没有日期)
- ckeditor4.x - CKeditor 4 证明字体和颜色不能一起工作
- android - 如何为新的 android 版本设置更新优先级
- html - 部分元素是否考虑它们的顺序?
- php - 如何使用 PHP 编辑对象数组中的对象属性?
- node.js - 从前端请求数据时如何在nodejs中切换远程数据库?
- python - 无法登录 localhost:8000/admin ... ERR_CONNECTION_REFUSED
- python - 如何获得情节的最终轴?
- python - 我们在 PySpark 程序中在哪里注册驱动程序?
- c++ - Q:: 谁能更详细地解释一下程序中的“传递值”?