【问题标题】:when is a session created in ejabberd ? How does authentication work ?什么时候在 ejabberd 中创建会话?身份验证如何工作?
【发布时间】:2016-10-01 07:15:49
【问题描述】:

我正在尝试了解 ejabberd 的数据流,并且到现在为止都很难。

首先,这些是我正在开发的模块: ejabberd_c2s、ejabberd_auth、ejabberd_sm、ejabberd_sm_mnesia。

我了解 ejabberd_c2s 是一个 gen_fsm,它是任何想要与任何其他客户端交谈的客户端的入口点。

数据流:当客户端连接到 ejabberd_c2s 时,它会发送一些数据,但不知道具体是什么,但沿 {JID} 行。但无法弄清楚 ejabberd_c2s 如何进行身份验证?它实际上在哪里调用身份验证模块,如果身份验证成功,谁为该用户创建会话?是 ejabberd_c2s 还是 ejabberd_auth ?

我知道 ejabberd_sm[_mnesia] 是实际上将为任何人创建会话的 api 调用。

高度赞赏对代码/示例的引用。!

这整件事究竟是如何运作的?

非常感谢!

【问题讨论】:

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


    【解决方案1】:

    【讨论】:

    • 谢谢。 wait_for_auth 是做什么的? github.com/processone/ejabberd/blob/master/src/… 另外,还有很多地方使用了 auth_module,例如,在 wait_for_auth、wait_for_sasl 等中。它们与 wait_for_stream 中的一个有什么不同?一个
    • 取决于 XMPP 协议版本和身份验证类型。一般来说,它不是使用的那个。
    猜你喜欢
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    相关资源
    最近更新 更多