Вы можете установить один и тот же ключ сеанса в обоих приложениях. В appA environment.rb измените ключ сессии, например,
Rails::Initializer.run do |config|
...
config.action_controller.session = {
:session_key => '_portal_session',
:secret => '72bf006c18d459acf51836d2aea01e0afd0388f860fe4b07a9a57dedd25c631749ba9b65083a85af38bd539cc810e81f559e76d6426c5e77b6064f42e14f7415'
}
...
end
Сделайте то же самое в AppB. (не забудьте использовать тот же секрет)
Теперь у вас есть общие сессии. Допустим, вы используете restfull_authentication, который устанавливает переменную сеанса с именем user_id . Когда вы аутентифицируетесь в appA, он устанавливает user_id в сеансе. Теперь в appB вам просто нужно проверить, существует ли user_id в сеансе.
Это общая схема, вы можете разработать более подробно, используя эту идею.