用于同步服务器通知的XMPP类Google解决方案

时间:2012-09-20 11:02:53

标签: google-chrome authentication xmpp server-side

我正在寻找一种简单的方法来实现使用以下协议运行的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服务器建议其他稳定的替代方案吗?

1 个答案:

答案 0 :(得分:1)

谷歌设计X-OAUTH2的方式很简单,很容易实现。事实上,PLAINX-OAUTH2机制的工作方式没有区别。您只需选择一个标准的PLAIN实施,并使其适用于Google X-OAUTH2身份验证机制,而无需额外的努力。

我是Jaxl PHP library的作者,我recently announced支持图书馆内的X-OAUTH2Here你可以看到我必须编写的确切代码行来支持这一点。唯一相关的代码是:

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标记。休息一下都是一样的。