Причудливый аутлогический вопрос только в производстве

Контекст: приложение 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 с использованием поддоменов

Другие вопросы по тегам