Аутентификация в Google Talk (XMPP, Smack) с использованием authToken
Приложение, которое я пишу, подключается к серверу XMPP, и, если пользователь выберет, я хочу дать ему возможность подключиться к его учетной записи Google Chat, без необходимости вводить учетные данные...
Для этого я получил бы разрешение на использование учетной записи Google, получил токен и прошел аутентификацию в Google Talk (XMPP-сервер, используя Smack) с помощью токена.
Проблема в том.. как мне это сделать? Я имею в виду, как мне пройти аутентификацию на сервере GTalk, если я знаю логин и токен?
Есть идеи, идеи?:)
Если нет, может кто-нибудь знает, где я могу найти кого-то, кто знает? (Контакты гугл, кто-нибудь?:P)
1 ответ
Вы ищете документацию по механизму 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>