我有一个 Rails-API 应用程序。或多或少“开箱即用”,但我想添加回基于 cookie 的会话存储。这是我所做的:
应用程序/控制器/application_controller.rb
+ include ::ActionController::Cookies
配置/应用程序.rb
+ config.middleware.insert_after ActiveRecord::QueryCache, ActionDispatch::Cookies
+ config.middleware.insert_after ActionDispatch::Cookies, ActionDispatch::Session::CookieStore
创建 config/initializers/secret_token.rb
+ Namespace::Application.config.secret_token = 'token'
创建 config/initializers/session_store.rb
+ Namespace::Application.config.session_store :cookie_store, :key => '_namespace_key'
当我在控制器中检查会话时,结果是:
<Rack::Session::Abstract::SessionHash:0x3fdadc5daa24 not yet loaded>
但是,似乎正在写入和使用数据。
但是,在我的浏览器中,cookie 本身被命名为 '_session_id' 而不是 '_namespace_key'
我以为我添加了基于 cookie 的会话存储所需的每一部分,但我似乎遗漏了其他东西。有任何想法吗?