【问题标题】:XMPP Google-like solution for sync server notificationsXMPP 类似 Google 的同步服务器通知解决方案
【发布时间】:2012-09-12 17:46:47
【问题描述】:

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

【问题讨论】:

    标签: google-chrome authentication xmpp server-side


    【解决方案1】:

    google 设计X-OAUTH2 的方式非常简单且易于实现。事实上,PLAINX-OAUTH2 机制的工作方式没有区别。您可以简单地选择一个标准的PLAIN 实现并使其适用于谷歌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 令牌。其余一切都保持不变。

    【讨论】:

      猜你喜欢
      • 2017-08-26
      • 1970-01-01
      • 2020-11-17
      • 2015-01-15
      • 2012-01-21
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多