使用 asmack 更改 XMPP 注册用户密码

Posted

技术标签:

【中文标题】使用 asmack 更改 XMPP 注册用户密码【英文标题】:Change XMPP registered user password using asmack 【发布时间】:2014-07-12 12:32:14 【问题描述】:

我正在创建一个 android 应用程序,该应用程序还具有使用 aSmack 和 ejabberd 的集成 XMPP 聊天功能。我正在使用用户的应用程序登录名和密码登录到 XMPP 服务器。 那么,如果用户更改了他的应用程序密码,我如何使用 aSmack 更改密码

【问题讨论】:

【参考方案1】:

首先,根据Smack API documentation“从 4.1 开始,Smack 可以在 Android 上原生运行且无需修改。”

在那里你可以使用AccountManager 类方法getInstance(XMPPConnection connection) 来获取一个实例。该对象有一个方法changePassword(String newPassword),您可以使用它来更改帐户密码。

还有其他有用的方法如createAccount(...)等...

确保以上内容适用于您使用的 XMPP 服务器。

请注意,一般而言,并非 XMMP 规范中描述的所有功能都适用于所有 XMPP 服务器实现。你应该经常检查你的服务器文档。

参考号:Smack API JavaDoc

【讨论】:

【参考方案2】:

除非你为它创建一个插件,否则没有办法做到这一点。

替代方法是删除用户并重新创建他。

另一个替代品可以是刚刚结婚的插件https://www.igniterealtime.org/projects/openfire/plugins/justmarried/readme.html 此插件更改用户名。您可以修改插件以更改密码。注意:刚刚结婚的插件也会删除用户并重新创建它,但会恢复所有数据

【讨论】:

但是删除和创建也会删除他所有加入的房间和东西 但它也可以用于 ejabberd 吗?? 我不确定。从来没有用过ejabberd。最后一个答案

以上是关于使用 asmack 更改 XMPP 注册用户密码的主要内容,如果未能解决你的问题,请参考以下文章

无法注册新用户 android asmack “无法生成验证码”

如何检查用户是不是已在 ejabberd 服务器中注册或未使用 asmack

android asmack 注册 登陆 聊天 多人聊天室 文件传输XMPP协议简介

在 XMPP 中注册无密码用户

在android中使用asmack获取错误的请求400错误

如何使用 asmack 设置头像?