Рельсы Двугоногий поставщик ОАУТ?
-
03-10-2019 - |
Вопрос
У меня есть рельсы 2.3.5 приложение с API, я хочу защитить.
Нет пользователей - это приложение для веб-сервиса стиля приложения (больше похоже на службу Amazon, чем Facebook), и поэтому я хотел бы реализовать его, используя двуногий подход OAUTH.
Я пытался использовать реализацию сервера WAUTH-Plugin Server в качестве начала:
http://github.com/pelle/oauth-plugin.
... но это построено ожидание трехногих (поток веб-перенаправления) ОАУТ.
Прежде чем я копаю глубже в принятие изменений в него, чтобы поддержать двуногими, я хотел посмотреть, был ли проще, или если кто-то имел лучший подход к приложению Rails для реализации, будучи двуновым поставщиком ОАУТ.
Решение
Ранее единственным хорошим ответом было взломать в Waute-Plugin, чтобы получить это подмножество взаимодействия ОАУТ. С тех пор был повторный плагин OAUTH-Plugin, и теперь вы можете использовать его прямо вверх, просто добавив правильный тип фильтра аутентификации в свой контроллер:
class ApiController < ApplicationController
include OAuth::Controllers::ApplicationControllerMethods
oauthenticate :strategies => :two_legged, :interactive => false
# ...
end
Другие советы
Я не знаю о любых альтернативах oauth-plugin в данный момент, хотя он определенно втягивается в зубе и созрел для замены. Моя рекомендация состоит в том, чтобы генерировать сервер OAUTH с Plugin auth-plugin, затем извлеките зависимости от плагина (которые являются просто парой модулей методов) и мусор плагин. Затем настроить все в свои потребности. 2-ноги ОАУТ не должна быть большой проблемой, поскольку в любом случае, у него проще, чем 3 нога, и мое чувство - это то, что oAuth-Plugin не используется в эти дни без существенных модификаций.
Мясо Оата уже давно экстрагировали в основу GEM OAUTH GEM, поэтому oAuth-плагин является своего рода в веществе. Архитектура делает некоторые жесткие предположения о какой системе аутентификации, которую вы используете, и сгенерированный код устарел. Итак, для меня, oouth-plugin служит в качестве примера того, как проводит все, а не то, что большинство сайтов захотят использовать из коробки.