使用authToken对Google Talk(XMPP,Smack)进行身份验证

Art*_*aru 4 android xmpp google-talk smack

我正在写的应用程序是连接到XMPP服务器,如果用户选择,我想给他们连接到他们的谷歌聊天帐户的选项,而无需输入凭据...

要做到这一点,我将获得使用谷歌帐户的许可,获取令牌并使用令牌验证谷歌谈话(XMPP服务器,使用Smack).

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

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

Joe*_*and 8

您正在寻找有关X-GOOGLE-TOKEN SASL机制的文档. 应该是开始.使用service = mail:

https://www.google.com/accounts/ClientLogin?
    accountType=GOOGLE&
    Email=YOURUSERNAME@gmail.com&
    Passwd=YOURPASSWORD&
    service=mail
Run Code Online (Sandbox Code Playgroud)

哪个会返回200 OK三个值:

SID=<long string>
LSID=<long string>
Auth=<long string>
Run Code Online (Sandbox Code Playgroud)

解析Auth字符串,然后使用以下形式构造一个字符串:

jidAndToken ="\0" + UTF8(YOURUSERNAME@gmail.com) + "\0" + Auth
Run Code Online (Sandbox Code Playgroud)

(其中"\ 0"旨在是一个值为零的单个八位字节).在最初的SASL auth中使用它:

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