0

在我们的系统中,我们希望将 moodle 插件(3.1 版)与会员集成。我们在 moodle 中有一些用户的密码是加密格式,我们希望将这些用户导入会员,而不使用 api 更改用户密码。

谁能建议我们如何处理这个问题?

我正在使用以下代码在成员中创建用户。它成功地在成员中创建用户但是当我尝试登录时它被拒绝。

$url = 'http://YOURDOMAIN.COM/amember/api/users';

$fields = array(
'_key' => 'SECRETKEY',
'_format' => 'xml',
'login' => 'USERNAME',
'pass' => 'PASSWORD',
'email' => 'EMAIL',
'name_f' => 'FIRST NAME',
'name_l' => 'LAST NAME',
);
 //open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));
 curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: application/x-  www-form-urlencoded"));

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

提前致谢。

4

2 回答 2

0

您不需要使用 API 来导入用户。

aMember 有允许您从 CSV 文件导入用户的管理工具。此工具允许您使用加密/散列密码导入用户。

aMember CP -> 用户 -> 导入用户

您可以将用户从您的 moodle 数据库导出到 CSV 文件。

在进行此类导入之前,您需要在 aMember 中启用 moodle 集成插件。

于 2017-06-20T13:15:44.203 回答
0

由于moodle中的密码是加密的,您将无法解密密码。当我阅读您的代码时,成员 api 在创建用户时将需要一个纯密码。

我看到的唯一解决方法是在moodle中拥有一个自己的身份验证插件。一旦现有的 moodle 用户尝试登录,就会调用此插件。然后,您可以使用 user_login 方法来验证 moodle 数据库的密码。此外,在这个阶段你有明文密码,所以你可以创建一个新的会员用户,一旦登录成功

于 2017-03-08T14:03:16.747 回答