Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 每个Rails引擎的会话存储_Ruby On Rails_Ruby_Session Cookies - Fatal编程技术网

Ruby on rails 每个Rails引擎的会话存储

Ruby on rails 每个Rails引擎的会话存储,ruby-on-rails,ruby,session-cookies,Ruby On Rails,Ruby,Session Cookies,我们如何设置Rails引擎以拥有自己的会话存储配置 到目前为止,我们已经尝试了以下方法: Console::Engine.config.session\u存储:活动的\u记录\u存储,键:'\u session\u id' 输出以下错误: /.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/railties-4.2.10/lib/rails/railtie/configuration.rb:95:in `method_missing': undefin

我们如何设置Rails引擎以拥有自己的
会话存储
配置

到目前为止,我们已经尝试了以下方法:

Console::Engine.config.session\u存储:活动的\u记录\u存储,键:'\u session\u id'

输出以下错误:

/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/railties-4.2.10/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `session_store' for #<Rails::Engine::Configuration:0x00007fb6859ba238> (NoMethodError)
    from /Code/App/engines/console/config/initializers/session_store.rb:1:in `<top (required)>'
    from /.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/activesupport-4.2.10/lib/active_support/dependencies.rb:268:in `load'
/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/railties-4.2.10/lib/rails/railtie/configuration.rb:95:in'method_missing':未定义的方法#(nomethoderor)
从/Code/App/engines/console/config/initializers/session_store.rb:1:in`'
from/.rbenv/versions/2.4.6/lib/ruby/gems/2.4.0/gems/activesupport-4.2.10/lib/active\u support/dependencies.rb:268:in'load'
原因是Rails::Engine::Configuration没有
会话存储
,但是
Rails::Application::Configuration有


关于如何实现这一点,您有什么想法吗?

引擎必须在应用程序的上下文中运行,因此这不太可能起作用。你想做什么?@dbugger目前可以从浏览器控制台复制
\u session\u id
,然后用户可以访问我们的任何子域并更改
\u session\u id
,从而绕过正常登录过程。这是一个安全问题。不确定采取什么方法来防止这种情况发生。您是否正在使用Desive或其他auth gem?如果你正在做一个多租户应用程序,你可能想看看公寓的宝石。这听起来像是身份验证策略/实现的一个更基本的问题。引擎必须在应用程序的上下文中运行,因此这不太可能工作。你想做什么?@dbugger目前可以从浏览器控制台复制
\u session\u id
,然后用户可以访问我们的任何子域并更改
\u session\u id
,从而绕过正常登录过程。这是一个安全问题。不确定采取什么方法来防止这种情况发生。您是否正在使用Desive或其他auth gem?如果你正在做一个多租户应用程序,你可能想看看公寓的宝石。这听起来像是身份验证策略/实现的一个更基本的问题。