【问题标题】:change password in ejabberd using php script使用 php 脚本在 ejabberd 中更改密码
【发布时间】:2017-02-01 07:31:03
【问题描述】:

这是在 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 中捕获的错误/结果

任何想法,任何帮助

提前致谢

【问题讨论】:

    标签: php ejabberd


    【解决方案1】:

    您的第一节很好,除了您尝试更改其他用户的密码(您以 admin 身份登录并更改 test 的密码) .我不希望这会起作用。

    这应该可以正常工作:

    <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>
    

    【讨论】:

    • 感谢您的回复,您的解决方案无法解决其抛出错误,例如:get_entity_affiliations
    【解决方案2】:

    对于 PHP,你可以试试这个

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

    【讨论】:

    • 感谢您的回复,但我不是在寻找命令我需要解决方案,我可以通过其他方式做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2017-07-02
    相关资源
    最近更新 更多