如何使用ejabberd注册模块进行自定义登录

时间:2017-04-13 07:44:18

标签: erlang ejabberd ejabberd-module ejabberd-api ejabberd-hooks

我是ejabberd和erlang的新手,并创建了一个基本应用程序,首先检查用户是否已登录。所以基本上它会检查登录的mnesia表并确认这一点。

现在我看到ejabberd也为ejabberdctl register username host password提供了用户注册过程,因为我使用sql身份验证,我发现有一个名为users的表,其中包含所有用户和密码存储。

我想知道这些值如何存储在那里的序列流,并希望用它来将username and password的这些值推送到我的mnesia表中进行登录。

我查看了ejabberd开发人员指南,发现mod_register处理新用户的注册,但我无法准确追查其中正在使用的函数来执行所有操作。

我正在使用将信息消息写入日志的方法。 有人可以帮我这个吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

ejabberd_auth模块负责用户注册mod_register call ejabberd_auth:try_register/3函数,ejabberd_auth:try_register/3调用这些模块(ejabberd_auth_sqlejabberd_auth_riakejabberd_auth_mnesiaejabberd_auth_externalejabberd_auth_anonymousejabberd_auth_pam)。这些模块还具有函数try_register/3。模块ejabberd_auth根据ejabberd配置文件auth方法(internal,external,odbc等)的设置调用这些模块。

因此,研究这些模块和功能,以了解ejabberd注册的流程。

Sample  flow