我是ejabberd和erlang的新手,并创建了一个基本应用程序,首先检查用户是否已登录。所以基本上它会检查登录的mnesia表并确认这一点。
现在我看到ejabberd也为ejabberdctl register username host password
提供了用户注册过程,因为我使用sql身份验证,我发现有一个名为users
的表,其中包含所有用户和密码存储。
我想知道这些值如何存储在那里的序列流,并希望用它来将username and password
的这些值推送到我的mnesia表中进行登录。
我查看了ejabberd开发人员指南,发现mod_register处理新用户的注册,但我无法准确追查其中正在使用的函数来执行所有操作。
我正在使用将信息消息写入日志的方法。 有人可以帮我这个吗? 提前谢谢。
答案 0 :(得分:0)
ejabberd_auth
模块负责用户注册mod_register call ejabberd_auth:try_register/3
函数,ejabberd_auth:try_register/3
调用这些模块(ejabberd_auth_sql
,ejabberd_auth_riak
,ejabberd_auth_mnesia
, ejabberd_auth_external
,ejabberd_auth_anonymous
和ejabberd_auth_pam
)。这些模块还具有函数try_register/3
。模块ejabberd_auth
根据ejabberd配置文件auth方法(internal,external,odbc等)的设置调用这些模块。
因此,研究这些模块和功能,以了解ejabberd注册的流程。