Используя OAuth ... я не понимаю. Что я должен сделать? - PullRequest
2 голосов
/ 03 октября 2009

Хорошо, поэтому я пытаюсь использовать OAuth (не мой выбор), и я не совсем понимаю это.

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

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

Consumer Key
Consumer Secret
Request Token URL
Access Token URL
Authorize Url

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

1 Ответ

4 голосов
/ 03 октября 2009

Для начала, прочтите http://oauth.net/core/1.0a, он содержит все, что вам нужно знать (по крайней мере, с точки зрения того, как все это сочетается - ваша реализация будет чем-то, что вы напишете для использования спецификации)

На высоком уровне поток запросов будет работать примерно так:

  • Сделайте запрос из вашего приложения на URL токена запроса провайдера, как это определено OAuth (это включает в себя подпись, генерирование хэша подписи запроса и включение его в качестве параметра)
  • Поставщик отправляет обратно токен неавторизованного запроса - это идентификатор одноразового использования для жизненного цикла текущего запроса oauth.
  • Ваше приложение перенаправляет пользователя на URL-адрес поставщика , где поставщик проверяет подлинность пользователя напрямую (например, с помощью формы входа в систему или путем проверки файла cookie в браузере пользователя на сайте поставщика). поставщик также может попросить пользователя предоставить разрешение на доступ к вашему приложению для своей учетной записи пользователя
  • При условии, что все идет хорошо, провайдер перенаправляет пользователя на URL-адрес обратного вызова, который вы указали, когда впервые отправляете пользователя провайдеру для аутентификации - они также включают в URL оригинальный маркер запроса , а также новый одноразовый проверочный код , который указывает, что токен запроса был авторизован
  • Затем ваше приложение отправляет запрос на URL токена доступа поставщика , передавая токен запроса, код подтверждения и снова подписывая запрос.
  • Затем провайдер проверяет выданный вами токен запроса, проверяя, был ли он ранее проверен пользователем, и проверяет, соответствует ли код подтверждения тому, который он отправил обратно изначально, и что токен запроса не был обменен на токен доступа уже Затем провайдер высылает вам новый токен доступа и секрет токена, чтобы вы могли удержать его на
  • Теперь вы можете получить доступ к данным провайдера - вы подключаетесь к любым веб-сервисам, которые они предоставляют, и взаимодействуете с ними, - но вам нужно подписывать каждый запрос, чтобы доказать, кто вы, и что пользователь подтвердил ваше приложение, чтобы оно действовало в соответствии с его требованиями. имя с поставщиком. Запросы включают обычные параметры OAuth (включая токен доступа) и подписываются секретом потребителя И секретом токена.

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

уф

(Да, я знаю, что это беспорядок, но есть библиотеки для большинства платформ, чтобы справиться с большей частью тяжелой работы)

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