Rails поделился спокойной аутентификацией между несколькими приложениями - PullRequest
2 голосов
/ 17 февраля 2010

Я создаю приложение rails, которое будет работать в том же домене, что и старое приложение. Я хотел бы иметь возможность использовать функцию спокойного входа в систему старого приложения для аутентификации пользователей для нового приложения. В идеале пользователь может войти в старое приложение, а затем получить доступ к новому приложению. Я запускаю два экземпляра монгрел для каждого приложения. Любая помощь очень ценится

Ответы [ 2 ]

3 голосов
/ 17 февраля 2010

Так что я понял это. Соединение с пользовательской базой данных (как предположил Лолиндрат), чтобы позволить более новому приложению иметь доступ к пользовательской базе данных, приводит нас на полпути. Теперь пользователь может войти в новое приложение с restful, как и старое приложение, но аутентификация не переносится из одного приложения в другое. Чтобы разрешить единый вход в систему для обоих приложений, необходимо скопировать данные сеанса cookie из старого приложения в новое приложение.

Итак, в файле ./config/initializers/sessiont_store.rb вставьте приведенные ниже данные из старого приложения в новое приложение (в старых версиях rails они есть в файле ./config/environment.rb):

ActionController::Base.session = {
    :domain      => '.localhost.com',
    :session_key => '_Project_name_session',
    :secret      => '09808ajdsfkljdfwu309jas3longerkey'
    }
0 голосов
/ 17 февраля 2010

Если вы используете одну и ту же версию плагина аутентификации, вы можете использовать другую базу данных для аутентификации.

Rails не обрабатывает несколько соединений с базой данных, поэтому вам придется использовать такой взлом: Несколько соединений с базами данных в Ruby on Rails .

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

...