设计子域之间的会话共享
Devise session sharing between subdomains
我正在尝试在子域之间共享会话,但我做不到。
我遵循了这个Devise config,但是没有用。
这就是我的 /etc/hosts 的样子:
127.0.0.1 localhost
127.0.0.1 apedraza.bejoy.local
127.0.0.1 bejoy.local
127.0.1.1 augusto-Lenovo-G580
127.0.0.1 api.the_genesis.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
和我的config/initializers/session_store.rb
Rails.application.config.session_store :cookie_store, key: '_bejoy_session', domain: ".bejoy.local"
在我的 bejoy.local:5000/users/sign_in 中,我创建了一个帐户(子域为 apedraza)它重定向到 apedraza.bejoy.local:5000/admin,但路由重定向到 apedraza.bejoy.local:5000/users/sign_in,那是因为找不到会话
我将 rails 应用放入 Docker 容器中,所以不确定这是否会成为问题。
尝试:
config/initializers/session_store.rb
Rails.application.config.session_store :cookie_store, key: '_bejoy_session', domain: :all
上一行注释:domain: :all
(不要忘记重新启动 rails 并清除您的 cookie)
感谢@iashraf 的回复。
我已经尝试过了,但对我不起作用。
但是,从头开始创建一个新的 rails 项目后,我可以看到配置是正确的。
多亏了这个,我发现问题出在其他地方:
我 re-write Devise 的注册控制器,我把它搞砸了,因为我对 super
块上的子域使用了 redirect
。
最后,我从 super
块中删除了重定向并将 url_path 放在 after_sign_up_path_for
上,这成功了!
我正在尝试在子域之间共享会话,但我做不到。
我遵循了这个Devise config,但是没有用。
这就是我的 /etc/hosts 的样子:
127.0.0.1 localhost
127.0.0.1 apedraza.bejoy.local
127.0.0.1 bejoy.local
127.0.1.1 augusto-Lenovo-G580
127.0.0.1 api.the_genesis.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
和我的config/initializers/session_store.rb
Rails.application.config.session_store :cookie_store, key: '_bejoy_session', domain: ".bejoy.local"
在我的 bejoy.local:5000/users/sign_in 中,我创建了一个帐户(子域为 apedraza)它重定向到 apedraza.bejoy.local:5000/admin,但路由重定向到 apedraza.bejoy.local:5000/users/sign_in,那是因为找不到会话
我将 rails 应用放入 Docker 容器中,所以不确定这是否会成为问题。
尝试:
config/initializers/session_store.rb
Rails.application.config.session_store :cookie_store, key: '_bejoy_session', domain: :all
上一行注释:domain: :all
(不要忘记重新启动 rails 并清除您的 cookie)
感谢@iashraf 的回复。
我已经尝试过了,但对我不起作用。
但是,从头开始创建一个新的 rails 项目后,我可以看到配置是正确的。
多亏了这个,我发现问题出在其他地方:
我 re-write Devise 的注册控制器,我把它搞砸了,因为我对 super
块上的子域使用了 redirect
。
最后,我从 super
块中删除了重定向并将 url_path 放在 after_sign_up_path_for
上,这成功了!