В настоящее время я пытаюсь использовать поток агента пользователя OAuth 2.0 с клиентским приложением C#, и у меня возникает некоторая путаница, связанная с URI перенаправления.
Поскольку я работаю с клиентским приложением, я не могу указать стандартный URL-адрес перенаправления на веб-сервер. Однако, по словам людей, с которыми я пытаюсь пройти аутентификацию (в данном случае Salesforce), поток User-Agent Flow является правильным для использования в клиентском приложении.
Мой вопрос: что я могу сделать, чтобы поймать токен доступа в этой ситуации? Видимо, я могу создать "локальный ресурс, доступный клиенту", но я не знаком с механикой этого и не могу найти ресурсы по теме (отчасти потому, что не знаю, что искать).
Любые указатели относительно того, где я должен начать искать, были бы очень признательны.
Изменить. Еще немного копания выявило следующий вопрос о переполнении стека:
Как вести локальную разработку с использованием OAuth?
Я делаю еще несколько исследований с тем, что они предложили, но любые другие предложения также были бы замечательными.
Изменить: еще один поиск показал эту статью:
http://sarangasl.blogspot.com/2010/09/create-simple-web-service-in-visual.html
Все еще кажется, что я ковыряюсь в темноте, не понимая общей картины, но я считаю, что мне нужно настроить локальный веб-сервис, используя localhost, и указать там свой URI перенаправления. Затем я буду использовать свой веб-сервис, чтобы развернуть ответ от сервера OAuth, и мое приложение отреагирует соответствующим образом. Будут еще обновления.
Ооооооооооооооооооооооо Итак, из того, что мне удалось собрать, мне нужно настроить локальную веб-службу для использования в качестве обратного вызова для OAuth. Мне нужно самому прослушать указанную веб-службу и поймать обратный вызов, чтобы передать его моему приложению. Однако веб-служба ASP.NET по умолчанию, предоставляемая VS2010, не поддерживает параметры URL, а только вызовы API, поэтому вместо этого мне, по-видимому, нужно использовать стартовый комплект WCF Rest.
Я совершенно чужд всему этому, поэтому любые советы были бы находкой на данный момент. В общем, я думаю, что я настроил локальную службу WCF Rest, предоставил этот локальный URI для OAuth в качестве обратного вызова, а затем перехватил URL-адрес обратного вызова с помощью службы Rest. Затем я анализирую URL-адрес и извлекаю токен доступа. В этот момент мое приложение запрашивает токен доступа или моя веб-служба может «отдать» токен моему приложению? То есть, где должен быть локус контроля?