6

У меня есть субдомен блогов, который хорошо работает, однако этот знак отделен от всех поддоменов, и, следовательно, если пользователь подписывает в своем файле cookie, он действителен только на страницах без поддоменов. Как я могу настроить приложение для того, чтобы файлы cookie были действительными во всех субдоменах и обычных страницах?Поделитесь одним единственным файлом cookie через поддомены

Я работал по этой теме: Share session (cookies) between subdomains in Rails?, но, к сожалению, без успеха. Я даже пробовал этот долгий шаг за шагом промежуточного подхода, но с успехом.

Я использую Rails 3.2.13.

Любая помощь оценена! :)

+0

Передача домена должна работать ... вы уверены, что правильно тестируете? – aguynamedloren

+0

Не могли бы вы рассказать об этом? я не так разбираюсь в файлах cookie и т. д. Посмотрите, это происходит, когда пользователь подписывает: cookies [: remember_token] = user.remember_token. Обычный стандартный файл cookie. Как я могу заставить этот файл cookie работать со всеми подобластями? –

+1

Вы пробовали ': cookie_store,: key => '_your_app_session',: domain =>" .yourdomain.com "'? –

ответ

16

Все, что мне нужно было сделать, это указать домен при создании файла cookie, как указано выше.

cookies[:remember_token] = { value: user.remember_token, domain: ".lvh.me" } 
1

Положите domain: all в конце строки в вашей конфигурации/session_store.rb

например.

YourApp::Application.config.session_store :encrypted_cookie_store, key: '_yourapp_session', domain: :all 

Вам также может понадобиться изменить этот параметр в вашей конфигурации/сред/production.rb

config.action_dispatch.tld_length = 2 

Если ваш домен example.com тогда ваш tld_length (длина домена верхнего уровня) является 1 (который по умолчанию). example.com.au - 2, 127.0.0.1.xip.io - 5, и так далее.

Смежные вопросы