Moodle - 什么用于令牌?

时间:2013-09-28 15:14:34

标签: web-services token moodle userid

我正在使用moodle Web服务。 我从'/login/token.php'获得一个令牌,但是在我拥有它之后,我该怎么办呢?我找不到有关如何从该令牌获取用户标识的文档,或者对其执行任何操作。

4 个答案:

答案 0 :(得分:1)

令牌是用作将要使用它的Web服务使用者的身份验证的密钥。 它与Web服务的每个功能相关联。

答案 1 :(得分:1)

如果您有令牌,则在client.php脚本上使用此令牌来检查您的Web服务是否正确。 每当用户使用该Web服务时,他/她就需要该令牌。每个Web服务功能都有一个唯一的令牌。

要从UI生成令牌,只需在moodle站点管理员 - >插件 - > web服务 - >管理令牌中进行操作。然后添加你的函数并为该特定函数生成令牌。

答案 2 :(得分:1)

查看 moodle / webservice / lib.php 中的function authenticate_user(),其中包含根据名称+密码或令牌对用户进行身份验证的方法。

这会调用function authenticate_by_token。这将检查external_tokens表以查看您的令牌是否存在,然后找出该令牌的用户并返回经过身份验证的用户对象。

我在浏览 moodle / webservice / rest / server.php 时登陆了这个功能。我正在使用moodle稳定版 2.8.2+(Build:20150123)

答案 3 :(得分:1)

不知道这是否已经过时了,但我自己也搞砸了。也许这也可以帮助其他人。

获得令牌后,您必须在API调用中提供令牌。因此,假设您已添加了获取所有课程的功能,那么您可以使用以下REST URL获取课程:

/moodle/webservice/rest/server.php?wstoken=d4ffd83ce0e2602a458b44e16634ab17&wsfunction=core_course_get_courses

wstoken是你获得的令牌。 wsfuntion是服务功能的名称。

我在moodle系统中找到了一个有用的服务功能列表:

moodle/admin/webservice/documentation.php

这里可以看到参数和返回值。