Как вы аутентифицируете пользовательские приложения для своего приложения?

Я думаю, что здесь что-то вроде приложений Facebook. Пользовательские фрагменты кода, которые люди могут написать для взаимодействия с моим приложением.

Я понимаю, как работает аутентифицированный API, но это кажется немного сложнее, потому что не только ПРИЛОЖЕНИЕ должно аутентифицировать себя (с помощью обычного API-ключа), но и ПОЛЬЗОВАТЕЛЬ, использующий приложение, также должен каким-то образом аутентифицироваться, не предоставляя приложению свободное царствование.

Я немного читал здесь, чтобы узнать, как это делает FB: http://wiki.developers.facebook.com/index.php/How_Facebook_Authenticates_Your_Application

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

Должно же быть простое объяснение этому? Спасибо!

P.S. Я создаю приложение Rails, если есть какие-либо применимые драгоценные камни/плагины.


person Brian Armstrong    schedule 02.04.2010    source источник
comment
Только некоторые вызовы (вещи, которые действуют от имени пользователя, в основном) требуют сеансового ключа — есть ряд вызовов, которые отлично работают без него. Фактический метод, который Facebook использует для передачи сеансового ключа различным приложениям, зависит от типа/настройки приложения. Сеансовый ключ является временным (один час) и отправляется только разрешенным приложениям. Вопрос заслуживает более хорошего (не SO?) исследования.   -  person    schedule 02.04.2010


Ответы (2)


Это может быть то, что мне нужно:

http://github.com/phurni/authlogic_api

person Brian Armstrong    schedule 02.04.2010
comment
Главный ответ здесь также был показательным: " title="ищу предложения по созданию безопасного API для отдыха в ruby ​​on rails"> stackoverflow.com/questions/247110/ - person Brian Armstrong; 02.04.2010

Удалось ли вам использовать authlogic_api? Я работаю на стороне сервера для игры Steam, где пользователи входят в систему через Steam, поэтому я отвечаю только на вызовы REST от клиента (вход в систему не требуется). rdocs для authlogic_api дают краткую информацию о настройке, но я борюсь с тем, что делать в application_controller, чтобы ограничить доступ; по существу эквивалент этого кода из примера authlogic:

http://github.com/binarylogic/authlogic_example/blob/5819a13477797d758cb6871f475ed1c54bf8a3a7/app/controllers/application_controller.rb

person zinndesign    schedule 23.06.2010
comment
В итоге я пошел другим путем в этом проекте, так что не уверен - возможно, это сработало. Извините, я не мог больше помочь! Хотя создание игры в Steam звучит довольно весело. - person Brian Armstrong; 24.06.2010
comment
В итоге хорошо поработали. Подробности здесь для тех, кто наткнулся на это... stackoverflow.com/questions/3111869/ - person zinndesign; 18.08.2010