使用php脚本更改ejabberd中的密码

时间:2016-09-23 12:26:34

标签: php ejabberd

这是在ejabberd中更改用户密码的任何可行方法吗? 我尝试使用xml以下,但它不适合我

试过:

<iq type='set' id='fabiang_xmpp_57e51e6c39d4d' from='admin@192.168.1.73'>
  <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中收到错误/结果

任何想法,任何帮助

提前致谢

2 个答案:

答案 0 :(得分:0)

您的第一节很好,除非您尝试更改其他用户的密码(您以 admin 身份登录并更改 test <的密码/ em>的)。我不希望这样做。

这应该可以正常工作:

<iq type='set' id='fabiang_xmpp_57e51e6c39d4d' from='admin@192.168.1.73'>
  <query xmlns='jabber:iq:register'>
    <username>admin</username>
    <password>newpass</password>
</query>
</iq>

答案 1 :(得分:0)

对于PHP,您可以试试这个

public function changePassword($user, $host, $new_password) 
{
    @exec('sudo ejabberdctl change-password '.$user.' '.$host.' '.$new_password.' 2>&1', $output, $status);
    return $output;       
}