Как вы отлаживаете приложение ASP.Net, обращающееся к защищенному API OAuth? - PullRequest
4 голосов
/ 07 декабря 2008

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

Я пишу приложение ASP.Net, которое будет взаимодействовать со служебным API (в частности, Evernote). Evernote требует OAuth для безопасности, и прежде чем я смогу взаимодействовать с объектами, мне нужно получить токен.

Рабочий процесс выглядит следующим образом (объясняя это себе так же, как и всем остальным!):

  1. Создайте URL с моим API-ключом разработки и секретным ключом и некоторыми другими компонентами OAuth, отправьте их в Evernote для запроса токена доступа.
  2. Отправьте URL-адрес как запрос в Evernote и извлеките новый токен доступа из ответа
  3. Создайте другой URL с токеном доступа, чтобы запросить токен аутентификации для пользователя. Этот URL-адрес переходит на страницу, с которой пользователь должен взаимодействовать, чтобы войти (если он еще этого не сделал), а затем авторизовать мое приложение для доступа к своей учетной записи. Последний параметр созданного мной URL-адреса - это URL-адрес обратного вызова, который будет вызываться с серверов Evernote.
  4. Если все пойдет хорошо, Evernote запросит URL обратного вызова и включит новый токен аутентификации в качестве параметра.
  5. Как только мой сервер получает обратный вызов со встроенным токеном, я могу использовать его, чтобы мое приложение могло взаимодействовать с примечаниями пользователей при последующих запросах.

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

Должен быть способ обойти эту проблему, потому что эта модель аутентификации не уникальна для Evernote (по большому счету ... Flickr использует ее, как и многие другие сервисы). Так может кто-нибудь сказать мне, как настроить, чтобы я мог получить токен аутентификации и все еще иметь возможность отладки на моем локальном компьютере?

Помощь очень ценится!

Ответы [ 2 ]

2 голосов
/ 07 декабря 2008

OAuth довольно сложно реализовать. Возможно, это не тот ответ, который вы ищете, но вот как мне удалось выполнить работу:

  1. Напишите код на моем локальном компьютере разработчика.
  2. Запустите файл bat (или, альтернативно, перехватите событие после сборки в VS), который выполняет сценарий развертывания msbuild и развертывает приложение на тестовом сервере.
  3. Запустите приложение на тестовом сервере. После получения токена запроса и запроса на авторизацию он перенаправляется на сайт Evernote.
  4. После успешной авторизации веб-сайт Evernote перенаправляет обратно на мой тестовый сервер, и авторизованный токен запроса заменяется токеном доступа.
  5. Вместо отладки (у меня нет VS на тестовом сервере), я проверяю журналы приложения (регистрация, которую я использовал, была такой же простой, как запись в текстовый файл).
  6. Прополоскать и повторить

В целях тестирования я зарегистрировал временный общедоступный поддомен (например, testing.oauth.mydomain.com), чтобы Evernote мог перенаправить на этот URL-адрес.

0 голосов
/ 05 апреля 2009

В соответствии с этим ( Как мне разработать локально против OAuth? ) обратный вызов выдается браузером, поэтому он должен иметь возможность попадать в localhost.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...