Аутентификация настольной программы с помощью онлайн-сервисов (запомнить themilk.com) - PullRequest
0 голосов
/ 01 марта 2010

Я пытаюсь создать настольную программу, которая будет взаимодействовать с онлайн-менеджером списков задач запомнитьthemilk.com. Последний шаг в процессе аутентификации - запуск ссылки, по которой пользователь может войти в службу и убедиться, что он хочет разрешить программе доступ к своей учетной записи.

Однако, сейчас у меня нет способа определить, когда они на самом деле говорят веб-сервису авторизовать мою программу. Кто-нибудь знает, как я могу определить, когда человек разрешил или запретил программу?

Вот код, который я сейчас использую:

String url = this.GetAuthenticationUrl(frob, 
    AuthenticationPermissions.Write);

//open external webpage to make user authenticate this program with RTM
System.Diagnostics.Process.Start(url);

this.AuthToken = this.GetToken(frob);

1 Ответ

1 голос
/ 01 марта 2010

Помните, что API аутентификации пользователя молока был разработан для доступа к другим веб-сайтам, так как их схема аутентификации будет вызывать страницу вашего сайта с набором параметров frob, который вы затем используйте в качестве токена для вызова rtm.auth.getToken .

Из-за этого, если вы хотите сделать это на рабочем столе, вам нужно настроить веб-сайт с URL обратного вызова.

Что бы вы сделали, это создайте URL, как указано в шагах 1-4 аутентификации пользователя. Было бы проще использовать форму с элементом управления WebBrowser, так как вы получите больший контроль над дисплеем, когда закончите.

На сервере, когда ваш URL обратного вызова вызывается с параметром frob, я бы заставил сервер выполнить вызов rtm.auth.getToken, а затем вернуть JSON или XML или какой-либо структурированный документ, будет либо токен, либо ошибка.

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

...