我正在寻找一种简单的方法来实现使用以下协议运行的XMPP服务器: https://developers.google.com/cloud-print/docs/rawxmpp
唯一的区别是我必须使用X-GOOGLE-TOKEN身份验证机制:https://stackoverflow.com/a/6211324/227244
程序很简单:我从客户端发送的数据中获取令牌,根据此令牌请求用户数据并相应地设置JID,将一些随机字符附加到生成的JID。
在具有可能不同的令牌但具有相同用户帐户的其他客户端之后,连接到XMPP资源,并且对于订阅的客户端,启用推送通知的广播。
可以从当前可用的实现中借用多少服务器代码?我会避免自己编写所有服务器代码,尽管逻辑非常简单。我知道有ejabberd和prosody xmpp服务器实现了大量的XEP。哪一个更容易添加自定义处理机制?你能为核心xmpp服务器建议其他稳定的替代方案吗?
答案 0 :(得分:1)
谷歌设计X-OAUTH2
的方式很简单,很容易实现。事实上,PLAIN
和X-OAUTH2
机制的工作方式没有区别。您只需选择一个标准的PLAIN
实施,并使其适用于Google X-OAUTH2
身份验证机制,而无需额外的努力。
我是Jaxl PHP library的作者,我recently announced支持图书馆内的X-OAUTH2
。 Here你可以看到我必须编写的确切代码行来支持这一点。唯一相关的代码是:
switch($mechanism) {
case 'PLAIN':
case 'X-OAUTH2':
$stanza->t(base64_encode("\x00".$user."\x00".$pass));
break;
X-OAUTH2
实施$pass
只是你的oauth令牌。简而言之,来自PLAIN
auth机制的密码字段成为X-OAUTH2
机制的oauth标记。休息一下都是一样的。