Аутентификация Rails через веб-сервис - PullRequest
1 голос
/ 29 декабря 2011

Итак, это может быть глупый вопрос, но я проверил Google и не получил ни одного хита. Мы хотим разместить несколько приложений Rails таким образом, чтобы они выглядели однородно. Мы хотим, чтобы все приложения выглядели одинаково, а все приложения использовали одну и ту же базу данных для входа.

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

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

Однако по разным причинам мы хотели бы сохранить эти отдельные приложения, если это технически возможно. Причина номер один - масштабируемость; так как это будет хостинговый сайт, мы хотим, чтобы гибкость позволяла увеличить количество экземпляров, скажем, магазина (возможно, для обработки праздничных распродаж), без необходимости раскручивать форумы чата. Кроме того, мы хотим иметь возможность полностью изолировать части кода, которые НЕ переплетаются.

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

Итак, я думаю, что, возможно, способ сделать это - авторизация через вызов веб-службы. Это предшествующий уровень техники - есть ли у кого-нибудь жемчужина для этого, которая «просто работает», чтобы аутентификация могла быть общей для всех приложений? Или я просто вхожу в мир боли, пытаясь строить вещи таким образом?

Заранее спасибо!

1 Ответ

0 голосов
/ 30 декабря 2011

Вы можете сделать единый заход на посадку, описанный в:

http://blog.joshsoftware.com/2010/12/16/multiple-applications-with-devise-omniauth-and-single-sign-on/

Единый знак приближения с oauth и devise имеет некоторые недостатки. Основная проблема, с которой я столкнулся, заключалась в том, что я не смог увеличить время ожидания для нескольких приложений.

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