Rails多租户设计会议

时间:2018-01-28 14:23:20

标签: ruby-on-rails ruby session devise multi-tenant

我正在开发多租户rails应用程序而不使用apartment gem。我使用设计进行用户身份验证时遇到问题。

当我注册时,我的用户会话不会在所有子域中共享。 我发现我需要更改会话配置,这就是我的配置:

Rails.application.config.session_store :cookie_store, key: '_hyggebulk_session', domain: 'lvh.me', tld_length: 2

这是我的routes.rb:

Rails.application.routes.draw do
  devise_for :users, controllers: { registrations: "registrations" }

  constraints(SubdomainRequired) do
    root to: "backend/dashboard#index", as: :authenticated_root
  end

  root to: "backend/dashboard#index"
end

我认为我的代码存在一些问题,所以请帮助我。

1 个答案:

答案 0 :(得分:1)

您只需添加要与其共享会话/ Cookie的域

Rails.application.config.session_store :cookie_store, key: '_hyggebulk_session', domain: '*.lvh.me', tld_length: 2

或做类似的事情:

Rails.application.config.session_store :cookie_store, key: '_hyggebulk_session', domain: ['subdomain1.lvh.me', 'subdomain2.lvh.me'], tld_length: 2