Использование javascript с API twitter

Я заинтересован в создании клиента Twitter с помощью Adobe Air, но сейчас я немного зацикливаюсь, так как не могу найти лучший способ подключиться к REST API Twitter, так как ему нужна аутентификация.

В настоящее время клиент отправляет запрос на мой сервер (скрипт php с использованием curl) с именем пользователя / паролем twitter (незашифрованным) в переменных GET. Затем сервер делает запрос на твиттер, используя эти учетные данные, и выводит буфер, который отправляется обратно клиенту, который затем обрабатывает / отображает его.

Очевидно, это ужасная дыра в безопасности, и кто-нибудь знает о лучшем (более безопасном) способе ее выполнения?

FYI: Я использую jQuery.

Solutions Collecting From Web of "Использование javascript с API twitter"

Есть несколько инструментов кодирования Base64. Вы можете использовать один из них. Вы можете добавить заголовок с закодированным именем пользователя и паролем на основе спецификаций Basic Auth

Вот сообщение, которое делает именно то, что вы хотите. http://www.aswinanand.com/blog/2009/01/http-basic-authentication-using-ajax/ . База64 кодируется с использованием этой библиотеки с сайта ostermiller.org

$.ajax({ 'url': 'http://twitter.com/action/', 'otherSettings': 'othervalues', 'beforeSend': function(xhr) { xhr.setRequestHeader("Authorization", "Basic " + encodeBase64(username + ":" + password) }, sucess: function(result) { alert('done'); } }); 

Я думал о том, чтобы делать что-то подобное с прокси-сервером PHP (для приложения требуется больше запросов, чем разрешено без «белого списка», поэтому мне нужно будет направлять запросы через один IP-адрес).

Моя идея состоит в том, что вы отправляете комбинацию имени пользователя и пароля один раз, а затем назначаете пользователю временный идентификатор сеанса, который используется для будущих запросов. Надежно направить исходное имя пользователя / пароль немного сложно, вы можете зашифровать его солью, но я не знаю, как легко декомпилировать приложения AIR. Другим вариантом может быть SSL (но я все еще не совсем уверен, как это работает).

Вот пошаговое руководство для концепции идентификатора сеанса:

  1. Пользователь предоставляет учетные данные приложения App для приложения.
  2. Учетные данные зашифрованы и отправлены на прокси-сервер.
  3. Аутентификация проверена на прокси-сервере.
    • В случае успеха создается сеанс, и возвращается идентификатор.
      • Обратите внимание, что сеанс содержит дату / время истечения срока действия и может использоваться только одним IP-адресом.
    • Если неуспешно, клиенту возвращается ошибка.
  4. Клиент сохраняет идентификатор сеанса и использует его в будущих запросах вместо имени пользователя / пароля.
    • Например request.php?action=get&data=friends_timeline&sessid=a3ajh83bah35nf
    • Время истечения сеанса распространяется на каждое обновление.
  5. Когда пользователь подписывается вне приложения, сообщение об ошибке отправляется в прокси-сервер, и сеанс аннулируется.

вы должны взглянуть на Spaz. http://funkatron.com/spaz – это клиент Twitter с открытым исходным кодом, написанный на javascript для Air. Источник доступен в Google Code. http://code.google.com/p/spaz/

Я не так много посмотрел на источник, но вижу, что некоторые элементы были написаны во Flash / Flex. Однако я использую приложение, и он просто работает.

Надеюсь, это вам полезно.

Ada – клиент Adobe Air Twitter, написанный на Javascript. Вы можете загрузить его, чтобы получить представление о том, что он делает:

http://madan.org/ada

Код для Ada находится на GitHub:

http://github.com/sfsam/ada/tree/master

Ada использует Base64. Приятная вещь в Ada заключается в том, что база кода действительно маленькая, поэтому вы должны все это понять.