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