Аутентификация в Google Talk (XMPP, Smack) с использованием authToken - PullRequest
4 голосов
/ 01 июня 2011

Приложение, которое я пишу, подключается к серверу XMPP, и, если пользователь выберет, я хочу дать ему возможность подключиться к его учетной записи в чате Google, без необходимости вводить учетные данные ...

Для этого я получил бы разрешение на использование учетной записи Google, получение токена и проверку подлинности в Google Talk (XMPP-сервер, используя Smack) с использованием токена ..

Проблема заключается в том ... какя делаю это?Я имею в виду, как мне пройти аутентификацию на сервере GTalk, если я знаю логин и токен?

Есть идеи, идеи?:)
Если нет, может кто-нибудь знает, где я могу найти кого-то, кто знает?(Контакты гугл, кто-нибудь?: P)

1 Ответ

8 голосов
/ 02 июня 2011

Вы ищете документацию по механизму X-GOOGLE-TOKEN SASL. Это должно быть началом. Использовать сервис = почта:

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>
...