Причудливый аутлогический вопрос только в производстве
Контекст: приложение rails с authlogic для sigup и входа в систему Информация о настройке: Rails 2.3.2
Контроллер вызвал сообщения с действием show. При входе в систему я отображаю пост / индексную страницу.
и когда пользователь нажимает на элемент, отображается информация об элементе. Довольно стандартные вещи.
Все это прекрасно работает как в разработке, так и в производстве (Apache с Passenger 2.2.5 для Ubuntu и MySQL), за исключением одной проблемы в одном случае:
Проблема: ТОЛЬКО в Firefox/Safari/Chrome (IE7 в порядке) и ТОЛЬКО в ПРОИЗВОДСТВЕ,
Когда пользователь входит в ПЕРВЫЙ раз в новом сеансе (откройте новый браузер, введите URL-адрес), страница индекса отображается нормально, а при щелчке элемента таинственным образом выводится сообщение LOGGED OUT (current_user возвращает значение NULL).
При повторном входе в систему все НАЗАД нормализуется - вы можете выходить из системы и входить в систему любое количество раз и без проблем - ДО закрытия браузера и повторного запуска.
Любое другое действие, кроме 'show', сохраняет current_user и работает нормально.
ВОПРОС: Как пользовательский сеанс теряется при вызове, таком как этот posts / id, только один раз - в первый раз? Действие шоу не делает ничего особенного.
Я использовал ActiveRecord Store и Cookies для управления сессиями с одинаковым поведением.
Кто-нибудь получил какие-либо подсказки, с благодарностью!
1 ответ
Это может происходить, потому что пользователь перенаправляется с: http://yoursite.com/ на http://www.yoursite.com/
Вот блог, в котором упоминается эта проблема: http://garrickvanburen.com/archive/rails-cookie-settings-for-cross-subdomain-sessions
Перефразируя блог: исправление должно установить:config.action_controller.session[:domain] = '.YOURDOMAIN.COM'
внутри environment.rb (убедитесь, что префикс .
). Благодаря этому файлы cookie будут работать как для www.yourdomain.com, так и для yourdomain.com (а также для любых других поддоменов).
Этот метод также обсуждается здесь: проигрыш сессии в приложении rails 2.3.2 с использованием поддоменов