【问题标题】:Authenticate to Google Talk (XMPP, Smack) using an authToken使用 authToken 对 Google Talk(XMPP、Smack)进行身份验证
【发布时间】:2011-09-05 21:33:13
【问题描述】:

我正在编写的应用程序正在连接到 XMPP 服务器,如果用户选择,我希望他们可以选择连接到他们的 google 聊天帐户,而无需输入凭据...

为此,我将获得使用 google 帐户的权限,获取令牌并使用令牌对 google talk(XMPP 服务器,使用 Smack)进行身份验证。

问题是.. 我该怎么做?我的意思是,如果我知道登录名和令牌,如何向 GTalk 服务器进行身份验证?

有什么想法和见解吗? :)
如果没有,也许有人知道我在哪里可以找到知道的人? (谷歌联系人,有人吗?:P)

【问题讨论】:

    标签: android xmpp smack google-talk


    【解决方案1】:

    您正在寻找有关 X-GOOGLE-TOKEN SASL 机制的文档。 This 应该是开始。使用服务=邮件:

    https://www.google.com/accounts/ClientLogin?
        accountType=GOOGLE&
        Email=YOURUSERNAME@gmail.com&
        Passwd=YOURPASSWORD&
        service=mail
    

    这将返回200 OK 和三个值:

    SID=<long string>
    LSID=<long string>
    Auth=<long string>
    

    解析出Auth字符串,然后用这种形式构造一个字符串:

    jidAndToken ="\0" + UTF8(YOURUSERNAME@gmail.com) + "\0" + Auth
    

    (其中“\0”是一个值为零的八位字节)。在初始 SASL 身份验证中使用它:

    <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' 
          mechanism='X-GOOGLE-TOKEN'>Base64(jidAndToken)</auth>
    

    【讨论】:

    • 考虑到我在 android 上编码,我想我应该能够使用 android SDK 获取 auth 令牌(否则它没有意义 - 这第一个请求需要 pass :P)我'今天会检查第二部分,如果它按我的需要工作 - 这将是完美的^_^
    • 这简直太棒了!正是我需要的!非常感谢:)
    • 一个问题:有没有办法让它与服务类型“谈话”而不是“邮件”一起工作?似乎“谈话”会更合适,但它似乎不允许我登录
    • 这正是 GoogleTalk 所需要的。将“邮件”视为一个不透明的字符串,它必须是四个八位字节 0x6d、0x61、0x69、0x6c。
    • 大声笑,该死.. 仍然看起来很奇怪,考虑到如果我使用“talk”它实际上显示“Google Talk”.. 所以服务已解决,但不允许权限 =/ 无论如何,谢谢..它有效,我很高兴)
    猜你喜欢
    • 2011-11-13
    • 2017-03-11
    • 1970-01-01
    • 2013-06-24
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    相关资源
    最近更新 更多