Xmpp 允许用户仅通过服务器端应用程序注册,而不是通过客户端库(例如strophe)

Xmpp 允许用户仅通过服务器端应用程序注册,而不是通过客户端库(例如strophe),xmpp,chat,ejabberd,strophe,Xmpp,Chat,Ejabberd,Strophe,在我们的系统中,我们用自己的逻辑管理用户。用户可以在我们的系统中注册,并与其他实体具有依赖关系。它检查用户数据的有效性和真实性,并对用户的主数据等负责 现在,每个用户还应该获得一个ejabberd帐户。我们要做的是:在逻辑中使用Smack,并在ejabberd中创建一个帐户。问题是,用户可以绕过我们的逻辑,直接在ejabberd中注册帐户。但是,我们希望保持ejabberd用户和我们的用户同步,不希望允许通过任何XMPP客户端(例如strophe.js)注册帐户,而只允许通过我们的系统注册 有什

在我们的系统中,我们用自己的逻辑管理用户。用户可以在我们的系统中注册,并与其他实体具有依赖关系。它检查用户数据的有效性和真实性,并对用户的主数据等负责

现在,每个用户还应该获得一个
ejabberd
帐户。我们要做的是:在逻辑中使用Smack,并在
ejabberd
中创建一个帐户。问题是,用户可以绕过我们的逻辑,直接在
ejabberd
中注册帐户。但是,我们希望保持
ejabberd
用户和我们的用户同步,不希望允许通过任何XMPP客户端(例如strophe.js)注册帐户,而只允许通过我们的系统注册


有什么解决方案吗?

最好的方法是在ejabberd中编写一个自定义身份验证插件来使用您的后端或使用ejabberd contrib ejabberd_auth_http:


您还可以始终从后端在ejabberd中创建用户,并禁用ejabberd中的mod_register,但我不建议使用这种方法,因为这样会复制用户群。

禁用
mod_register
将禁用浏览器客户端的用户注册,并且仅从服务器端?禁用mod_registed禁用c2s XMPP协议的注册(标准c2s连接,或bosh)…以及如何在ejabberd中禁用
mod_寄存器
?从ejabberd配置文件模块部分注释掉mod_寄存器。