Как обрабатывать сеансовые домены в cname forward, поддерживающем rails saas software - PullRequest
0 голосов
/ 12 апреля 2010

Я прочитал

Но я не могу получить решение для следующей настройки:

  • SaaS Webapp в Rails работает под example.com
  • У всех пользователей есть sumbdomain, например, user1.example.com
  • Пользователи могут создать переадресацию cname, например. exampleapp.user1.com -> user1.example.com

Это все работает, пока пользователь не попытается войти через exampleapp.user1.com. Приложение SaaS не может установить право домена сеанса, поскольку оно настроено статически при запуске приложения.

config.action_controller.session = {
  :session_key => '_example_session',
  :domain => ".example.com",
  :secret      => 'abc'
}

Запрос не выполняется с ActionController::InvalidAuthenticityToken. И это правильно, потому что домен изменился с .example.com на exampleapp.user1.com.

Как изменить конфигурацию домена во время выполнения? Я знаю, что «входящий» домен exampleapp.user1.com принадлежит user1, поэтому я хочу сделать что-то подобное в контроллере:

session :domain => 'exampleapp.user1.com'

Или я всегда могу установить домен сеанса в текущем домене запроса? Я знаю, что это как-то возможно, потому что некоторые приложения предоставляют такую ​​функциональность.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 12 июля 2012

: domain =>: все в конфигурации cookie могут работать.

Для доменов CNAME будет установлено значение .theirdomain.com

Для вашего пользовательского субдомена он перейдет на .yourdomain.com, что может быть хорошо, а может и нет

0 голосов
/ 13 апреля 2010

Просто не устанавливайте домен, так как, очевидно, вам не нужно делиться сессионными cookie-файлами через example.com и user1.example.com. Если домен не указан, поведение файла cookie по умолчанию просто устанавливается для текущего домена запроса.

...