XMPP 服务器端认证响应

Posted

技术标签:

【中文标题】XMPP 服务器端认证响应【英文标题】:EXMPP ServerSide Authentication Response 【发布时间】:2015-08-12 08:34:06 【问题描述】:

我目前正在使用 XMPP-messaging-server,我想给客户端写一个响应,说我想启动一个 NON-SASL 身份验证。 这是我要处理的客户请求。

<<"<stream:stream xmlns='jabber:client' to='example.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='username@example.com' xml:lang='en'>">>

问题是,我不知道如何给客户写回复说我想使用非 SASL 身份验证。我正在使用 EXMPP 库,并且我的服务器是用 Erlang 编写的。

我不想使用 ejabberd,因为我想了解更多有关 Erlang 和 XMPP 的信息,因此我不想使用开箱即用的服务器。

【问题讨论】:

【参考方案1】:

非 SASL 身份验证已被弃用近 10 年。实施它不是一个好主意,周围有很多客户不支持它。 SASL PLAIN 的实现和普遍支持只是稍微复杂一些。

如果您确实有充分的理由实施它,您可以通过添加 &lt;auth&gt; element in your stream features 来宣传支持:

<stream:features>
    ...
    <auth xmlns='http://jabber.org/features/iq-auth'/>
</stream:features>

【讨论】:

是的,我知道它已被弃用,但它仅适用于第一个原型。

以上是关于XMPP 服务器端认证响应的主要内容,如果未能解决你的问题,请参考以下文章

使用 Smack 的 QuickBlox 服务器端 XMPP 客户端

谷歌云消息传递 - 使用 smack 的 xmpp 服务器端不起作用

iOS xmpp协议实现聊天之openfire的服务端配置

JWT认证机制

如何自己搭建一个xmpp,实现推送消息

Smack 是不是支持 XMPP 端到端加密 (E2EE)?