我正在构建一个可以通过不同域访问的应用程序。根据访问它的域名,它的行为会略有不同。

我希望能够做的是,一旦有人从一个域登录,当他们来自不同的域时,他们不应该要求注册,而应该自动登录。

我的猜测是这将需要在域之间共享 cookie 数据。有人可以指出我应该如何实现这一目标吗?

我知道还有其他网站网络会这样做,例如 http://graphicriver.net/http://audiojungle.net/,您只需登录其中一个即可使用其所有网站。

最佳答案

配置/初始化程序/session_store.rb

ProjectName::Application.config.session_store :cookie_store, key: '_ProjectName_session',
                                                             domain: :all,
                                                             tld_length: 2

然后你还需要清除cookies。

UPD:我之前的回答是错误的,我忘记添加 tld_length 选项,因此顶级域长度超过 1 的域之间不会共享 session (myapp.local 的 tld_length 为 2)。现在答案是正确的。

关于ruby-on-rails - 在多个域之间共享用户 session ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8262844/

10-12 05:06