У меня есть приложение Ruby on rails, которое я хочу интегрировать с существующим веб-сайтом php. Я только хочу, чтобы пользователи, прошедшие аутентификацию в php-приложении, имели доступ к моему приложению Ruby on Rails (он должен появляться у пользователя как один и тот же веб-сайт в том же домене, хотя он может быть другим поддоменом, если я выбрал to) Каков наилучший способ сделать это?
Спасибо за помощь,
Li
Самый распространенный способ сохранить вход пользователя в систему – хранить в сеансе пользователя что-то вроде current_user_id:777
. Поэтому самым простым способом является обмен сеансом между приложением Rails и PHP-приложением. Затем вы должны использовать одно и то же соглашение для хранения идентификатора зарегистрированного пользователя.
Способ сделать это – использовать memcached в качестве поддержки сеанса.
Проблемы с этим подходом: вы можете одновременно установить и прочитать одну и ту же переменную сеанса из обоих приложений (но этого можно избежать).
Рекомендации:
Хранение ваших php-сессий с помощью memcached
Usind memcache как хранилище сеансов рельсов
Самый простой способ – использовать файлы cookie. В приложении PHP этот файл cookie устанавливается, и приложение RoR может читать его значение.
Но с куки-файлами вам нужно будет следить за безопасностью, потому что содержимое файла cookie можно установить вручную, а файлы cookie также можно скопировать, что позволяет украсть файлы cookie других лиц.
Другим вариантом может быть сеанс, который хранится в базе данных, которую могут использовать оба приложения. Преимущество этой опции заключается в том, что содержимое сеанса хранится на сервере и не может быть изменено. Единственное, что вам нужно будет обработать, – это определить пользователя, принадлежащего к файлу cookie.