2017-01-23 2 views
0

Так что вещь, этот код работает очень хорошо:Как установить домен в ответ [ «куки взаимозачетов»]

response["set-cookie"]="cookieName=#{@cookieValue.split.join}" 

Я могу установить печенье с правильным названием и содержанием (да, разделенными .join тоже). Но мне нужно также установить домен.

Мой сайт выходит на домен, как это: mysubdomain.mywebsite.com

Но мне нужно установить куки для домена mywebsite.com.

Если добавить это так, печенье просто не существует:

response["set-cookie"]="cookieName=#{@cookieValue.split.join};Path=/;Domain=mywebsite.com" 

Мне нужно установить печенье с ответом [ «куки взаимозачеты»], потому что это единственный метод, который работает для моего длинная строка. Я пробовал каждый метод, но мне нужно использовать его.

Итак, вопрос в том, как настроить домен, используя ответ ["set-cookie"] для настройки cookie?

ответ

0

Ну, предпочитаем использовать инициализатор здесь. Создайте новый файл config/initializers/cookies.rb и поместить следующий код там:

options = { 
    key: 'your_cookie_name', 
    domain: 'your_domain' 
} 

Rails.application.config.session_store :cookie_store, options 

Это сделает вашу конфигурацию куки, связанные в одном месте, хотя это не обязательно. Вы можете использовать опцию domain для указания имени домена для вашего файла cookie.

+0

спасибо, но обязательно прочтите пожалуйста. Я не хочу устанавливать домен для основного файла cookie. Только для этого. И мне нужно использовать response ["set-cookie"] – Boomerange

+0

Как и 'response', вы можете получить доступ к объекту' cookies' для установки файлов ответов. '[Read more here'] (http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html). – 31piy

+0

Пожалуйста, прочитайте его еще раз. Я знаю файлы cookie ["cookieName" и т. Д. Я ИСПОЛЬЗОВАТЬ ответ ["set-cookie"] – Boomerange

0

Я не смог это сделать. Я думаю, что у Rails есть механизм безопасности, который предотвращает это (но правильно установить cookie для домена из поддомена).

Но я был в состоянии сделать это с помощью JavaScript:

document.cookie = "#{@cookieName}=#{@cookieContent};domain=yourdomain.com" 

Одна строка кода, работает отлично. Просто поместите его в свое мнение или отделите файл и потребуйте его в application.js. Я нахожусь в поддомене, но, наконец, могу установить cookie для родительского домена.

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