Web services moodle中无令牌的Web服务

Web services moodle中无令牌的Web服务,web-services,moodle,Web Services,Moodle,我是webservice的初学者。我正在Moodle中编写一个Web服务 我想为用户注册写一个服务。在这种情况下,用户将没有任何令牌或用户名+密码 我们如何允许该用户调用core\u user\u createUsersweb服务进行注册 对于其他服务,我使用以下代码: $domainname = 'http://mydomain/moodle'; require_once('./curl.php'); $curl = new curl; $authurl = $domainname .'/

我是webservice的初学者。我正在Moodle中编写一个Web服务

我想为用户注册写一个服务。在这种情况下,用户将没有任何令牌或用户名+密码

我们如何允许该用户调用
core\u user\u createUsers
web服务进行注册

对于其他服务,我使用以下代码:

$domainname = 'http://mydomain/moodle';

require_once('./curl.php');
$curl = new curl;

$authurl = $domainname .'/login/token.php?username=admin&password=Admin123$&service=shcs_services';
$resp = $curl->get($authurl);

if($resp)
{
    $resp = json_decode($resp);
    $authToken = $resp->token;
}

/// PARAMETERS
$serverurl = $domainname . '/webservice/rest/server.php';


$params['wstoken'] = $authToken;
$params['wsfunction'] = 'core_user_createUsers';
$params['moodlewsrestformat'] = 'json';




$user1 = new stdClass();
$user1->username = 'testusername';
$user1->password = 'Testpassword1%';
$user1->firstname = 'testfirstname1';
$user1->lastname = 'testlastname1';
$user1->email = 'testemail1@moodle.com';
$user1->auth = 'manual';
$user1->idnumber = 'testidnumber1';
$user1->lang = 'en';
$user1->theme = 'standard';
$user1->timezone = '-12.5';
$user1->mailformat = 0;
$user1->description = 'Hello World!';
$user1->city = 'testcity1';
$user1->country = 'au';
$preferencename1 = 'preference1';
$preferencename2 = 'preference2';
$user1->preferences = array(
    array('type' => $preferencename1, 'value' => 'preferencevalue1'),
    array('type' => $preferencename2, 'value' => 'preferencevalue2'));
$users = array($user1);
$params['users'] = $users;


$resp = $curl->post($serverurl, $params);
echo $resp; 
在上面的代码中,我想跳过下面的部分

$authurl = $domainname .'/login/token.php?username=admin&password=Admin123$&service=shcs_services';
$resp = $curl->get($authurl);

if($resp)
{
    $resp = json_decode($resp);
    $authToken = $resp->token;
}
因此我不想传递值
$params['wstoken']=$authToken到web服务

但它不允许我没有代币。下面是我得到的错误:

{"exception":"moodle_exception","errorcode":"invalidtoken","message":"Invalid token - token not found"}

令牌是将web服务连接到应用程序的唯一方法。这是必须的。因为我现在从事的是网络服务和移动应用。因此,我体验到令牌是验证web服务的唯一方法。通过验证与web服务连接的第一步。而且你根本没有传递令牌。因此,您的验证将失败。你会得到这个错误