DeadMoroz
@DeadMoroz

Взаимодействие десктопного приложения с веб-сервисом?

Где можно прочитать про протоколы взаимодействия десктопных приложений с веб-сервисами? В частности, интересует вопрос аутентификации и авторизации.


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


Например, URL, по которому открывается веб-сайт Dropbox по ссылке из контекстного меню, содержит какие-то параметры авторизации. То ли это идентификатор сессии, то ли какой-то API-key. Хотелось бы понять, откуда он берётся, и каков его жизненный цикл.


Или взять десктопного клиента Last.fm — не уверен, но навряд ли он на каждый запрос шлёт логин/пароль для аутентификации.


Может быть Evernote использует какой-нибудь стандартный подход? Ну и так далее.
  • Вопрос задан
  • 3340 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Fak3
> Например, URL, по которому открывается веб-сайт Dropbox по ссылке из контекстного меню, содержит какие-то параметры авторизации.
API dropbox'a тут: www.dropbox.com/developers/docs#api-specification

>Или взять десктопного клиента Last.fm — не уверен, но навряд ли он на каждый запрос шлёт логин/пароль для аутентификации.
Нет, приложение шлет запрос на ваторизацию и получает в ответ session_key, который потом оно в каждом запросе должно слать
полное описание API тут: www.last.fm/api/authspec
Или можно посмотреть на пимер кода тут: github.com/Voker57/qmpdclient/blob/master/src/lastfmsubmitter.cpp
В методе doHandshake() шлется запрос на авторизацию, потом в методе gotNetReply() получаем и обрабатываем ответ:
m_session=data[1];
m_npUrl=data[2];
m_subUrl=data[3];

m_session потом шлем в POST-запросе на нужный УРЛ (в методах scrobbleQueued() и scrobbleNp(), на соответструющие url — m_subUrl или m_npUrl)
Ответ написан
@ComputerPers
zizop
@zizop
На последнем DevConf'2011 был отличный доклад Badoo Development на эту тему: Badoo Desktop: оптимизация приложения на миллион юзеров онлайн. Там были практические советы, а также обсуждались многочисленные нюансы взаимодействия.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы