Вопрос

Я использовал API Graph Facebook (использует OAUTH 2.0 для аутентификации), успешно на некоторое время. Теперь мне нужно написать свой собственный API, который позволяет разработчикам подключаться к нему аналогичным образом. Я посмотрел в различные библиотеки, но я бы хотел что-то немного осело, поэтому я решил катиться своим собственным. Глядя на код, я должен аутентифицировать пользователя на Facebook, он выглядит относительно простым, но, пожалуйста, исправьте меня, если я ухожу с треком.

Сначала мне нужно будет обеспечить безопасную страницу, которую потребитель должен будет перенаправить. Например, https://api.mydomain.com/oauts/authorize?Client_id=consumer_key& Redirect_url= callback_url . Пользователь проверит приложение, то я бы вернулся обратно к URL-адресу, указанному в URL-адресе обратного вызова с помощью oauth_token в строке запроса. Я полагаю, что я мог бы просто генерировать случайную уникальную строку здесь для oAuth_token и хранить его против пользователя для этого конкретного потребителя (редактировать: см. Ответ ниже, это должно быть уникальным для каждого потребительского приложения, а не пользователю).

Это шаг на 1 выход. Теперь мне нужно предоставить вторую безопасную страницу, которую потребитель будет вызывать веб-запрос. Например, https://api.mydomain.com/oauth/access_tokensclient_id= Thumber_key & Client_Secret= Thumber_Secret & Oauth_token= Oauth_token_returned_above . Это позволило бы потребителю обменять OAUTH_TOKEAKEN, возвращенный выше для токена доступа. Я бы снова просто создавал случайную уникальную строку и хранить его против пользователя для этого конкретного потребителя.

Теперь мой API примет Access_Token для методов, которые пытаются захватить информацию, специфичную для пользователя, который его использует.

Я хотел бы знать, правильно ли я правильно понял. Спецификация OAUTH 2.0 кажется чрезвычайно тривиальным, если это так. Кроме того, почему мы должны обменять Oauth_token с Access_Token? У меня есть своя идея, но я был бы признателен, если кто-то может помочь уточнить это.

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

Спасибо

Это было полезно?

Решение

Фактически протокол поточные диаграммы были бы чрезвычайно полезными для визуализации спецификаций, подобных таковому из oAuth 2, но там есть только некоторые частицы. Как я только что реализовал только клиентскую библиотеку Oauth 2, я могу проверить, что вы на правильном пути. Но вот улов:

oauth_token принадлежит вашему клиентскому приложению (i.e. Настольный читатель Facebook), который аутентифицирует ваше приложение (как и идентификатор). Вы отправляете это, чтобы вернуть Access_Token, который специфичен для вашего приложения и вошел в систему пользователем, что позволяет получить доступ к ограниченным ресурсам, связанным с пользователем.

Вот базовый процесс аутентификации приложения для рабочего стола (взятый из: http://developers.gigya. com / 020_developer_guide / 85_rest / oauth2 )

REST OAUTH 2.0

На самом деле течет DIGRAM с временной шкалой (сверху вниз, взятый из: http://www.ibm.com/developerworks/web/library/wa-oauthsupport/?ca=drs- )

Протокол протокола

И, наконец, полная процедура: (взято из http://h2anetwork.org/projectdocs/ Dpi / dpi_framework.html )

Протокол протокола OAUTH

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top