我有一个Rails-API应用程序.或多或少"开箱即用",但我想添加回基于cookie的会话存储.这就是我所做的:
应用程序/控制器/ application_controller.rb
+ include ::ActionController::Cookies
Run Code Online (Sandbox Code Playgroud)
配置/ application.rb中
+ config.middleware.insert_after ActiveRecord::QueryCache, ActionDispatch::Cookies
+ config.middleware.insert_after ActionDispatch::Cookies, ActionDispatch::Session::CookieStore
Run Code Online (Sandbox Code Playgroud)
创建了config/initializers/secret_token.rb
+ Namespace::Application.config.secret_token = 'token'
Run Code Online (Sandbox Code Playgroud)
创建了config/initializers/session_store.rb
+ Namespace::Application.config.session_store :cookie_store, :key => '_namespace_key'
Run Code Online (Sandbox Code Playgroud)
当我在控制器中检查会话时,它会导致:
<Rack::Session::Abstract::SessionHash:0x3fdadc5daa24 not yet loaded>
Run Code Online (Sandbox Code Playgroud)
但是看起来确实正在写入和使用数据.
但是,在我的浏览器中,cookie本身被命名为'_session_id',而不是'_namespace_key'
我以为我添加了基于cookie的会话存储所需的每一件,但我似乎缺少别的东西.有任何想法吗?