我正在使用 moodle 网络服务。我从 '/login/token.php' 得到一个令牌,但是在我得到它之后,我该怎么办?我找不到有关如何从该令牌获取用户 ID 或对其执行任何操作的文档。
4 回答
令牌是用作验证将要使用它的 Web 服务消费者的密钥。它与 Web 服务的每个功能相关联。
查看moodle/webservice/lib.phpfunction authenticate_user()
中的内容,其中包含基于名称+密码或令牌对用户进行身份验证的方法。
这称为function authenticate_by_token
. 这将检查external_tokens
表以查看您的令牌是否存在,然后找出该令牌的用户并返回经过身份验证的用户对象。
我在浏览moodle/webservice/rest/server.php时使用了这个功能。我正在使用 moodle 稳定版2.8.2+(内部版本:20150123)
如果您有令牌,则在 client.php 脚本上使用此令牌来检查您的 Web 服务是否正确。每当用户使用此 Web 服务时,他/她就需要该令牌。每个 Web 服务功能都有一个唯一的令牌。
要从 UI 生成令牌,只需在您的 Moodle 站点管理员->插件->Web 服务->管理令牌中进行。然后添加您的函数并为该特定函数生成令牌。
不知道这是否过时了,但我自己偶然发现了它。也许这也可以帮助其他人。
获得令牌后,您必须在 API 调用中提供它。假设您已经添加了获取所有课程的功能,那么您可以通过以下 REST URL 获取课程:
/moodle/webservice/rest/server.php?wstoken=d4ffd83ce0e2602a458b44e16634ab17&wsfunction=core_course_get_courses
wtoken 是你得到的令牌。wsfuntion 是服务函数的名称。
我在 Moodle 系统中找到了一个有用的服务功能列表:
moodle/admin/webservice/documentation.php
在这里可以看到参数和返回值。