2

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

4

1 回答 1

1

谷歌设计的方式X-OAUTH2非常简单且易于实施。事实上,机制的工作方式PLAIN和工作方式之间没有区别。X-OAUTH2您可以简单地选择一个标准PLAIN实现并使其适用于 googleX-OAUTH2身份验证机制,而无需额外的努力。

我是Jaxl PHP 库的作者,我最近宣布支持X-OAUTH2内部库。在这里,您可以看到我必须编写的确切代码行来支持这一点。唯一相关的代码是:

switch($mechanism) {
    case 'PLAIN':
    case 'X-OAUTH2':
        $stanza->t(base64_encode("\x00".$user."\x00".$pass));
        break;

X-OAUTH2实施$pass只不过是您的 oauth 令牌。简而言之,来自PLAIN身份验证机制的密码字段成为机制的 oauth 令牌X-OAUTH2。其余一切保持不变。

于 2012-09-22T03:48:09.123 回答