Это любой возможный способ изменить пароль пользователя в ejabberd
Я пытался использовать ниже XML, но это не работает для меня
Пытался :
<iq type='set' id='fabiang_xmpp_57e51e6c39d4d' from='[email protected]'>
<query xmlns='jabber:iq:register'>
<username>test</username>
<password>newpass</password>
</query>
</iq>
Результат:
{xmlcdata,<<"User already exists">>}
Пытался :
<iq type='set' id='fabiang_xmpp_57e51e6c39d4d'>
<query xmlns='jabber:iq:register:changepassword'>
<old_password>test</old_password>
<username>87906</username>
<password>google</password>
</query>
</iq>
Результат:
{xmlcdata,<<"No module is handling this query">>}
К вашему сведению: ошибка / результат, который я улавливаю из ejabberd.log
Любые мысли, любые подсказки
заранее спасибо
Ваш первый раздел в порядке, за исключением того, что вы пытаетесь изменить пароль другого пользователя (вы вошли как админ и изменение пароля для тестовое задание). Я не ожидал бы, что это сработает.
Это должно работать нормально:
<iq type='set' id='fabiang_xmpp_57e51e6c39d4d' from='[email protected]'>
<query xmlns='jabber:iq:register'>
<username>admin</username>
<password>newpass</password>
</query>
</iq>
Для PHP, вы можете попробовать это
public function changePassword($user, $host, $new_password)
{
@exec('sudo ejabberdctl change-password '.$user.' '.$host.' '.$new_password.' 2>&1', $output, $status);
return $output;
}