Почему авторизованный токен запроса OAuth 1.0 необходимо заменить на токен доступа? - PullRequest
17 голосов
/ 22 мая 2010

Мне интересно, для чего OAuth 1.0 требует обратного обращения к поставщику данных для обмена авторизованным токеном запроса на токен доступа.

Мое понимание рабочего процесса OAuth 1.0:

  1. Запрашивающий сайт (потребитель) получает токен запроса от сайта поставщика данных (поставщика услуг).

  2. Запрашивающий сайт запрашивает у сайта поставщика данных аутентификацию пользователя, передавая обратный вызов.

  3. После того, как пользователь прошел аутентификацию и авторизовал запрашивающий сайт, пользователь возвращается к запрашивающему сайту (потребителю) через предоставленный обратный вызов, который передает обратно авторизованный токен запроса и код подтверждения. *

  4. Запрашивающий сайт обменивает токен запроса на токен доступа.

  5. Запрашивающий сайт использует токен доступа для получения данных с сайта поставщика данных.

Если я правильно понял, почему обратный вызов не может просто предоставить токен доступа запрашивающему сайту непосредственно на шаге 3, исключив шаг 4? Зачем нужен запрос на обмен токена запроса на токен доступа? Существует ли он только для потребителей, которые требуют, чтобы пользователи вводили код подтверждения вручную, полагая, что он будет короче и проще, чем сам маркер доступа?

1 Ответ

16 голосов
/ 11 апреля 2011

Джо

При использовании OAuth 1.0 важно помнить, какие части происходят «сервер-сервер», а какие - в браузере («пользовательский агент»). «Точка» OAuth, если хотите, состоит в том, чтобы получить токен доступа на стороне сервера и секретный к внутреннему конечному серверу потребителя, даже не передавая секретный код через браузер.

Имея это в виду: когда пользователь авторизует токен запроса, «обратный вызов» происходит через агента пользователя, через перенаправление HTTP. Другими словами, любые данные (то есть код верификатора и токен запроса, но НЕ токен запроса SECRET ) в обратном вызове "видны" браузером. Вот почему токен доступа (и секретный) не может быть параметрами шага обратного вызова: они должны передаваться напрямую с сервера на сервер, а не через браузер.

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