環境
- Rails 5.2.3
前提
または
-
ActionController::API
を継承して API用のcontrollerを使っている。
問題/やりたいこと
そのままでは cookiesにアクセスできないので、アクセスできるようにしていきます。
やり方
ここでは後者(ActionController::API
を継承して API用のcontrollerを使っている)前提とします。
ActionController::Cookies を include する
ActionController::API
を継承しているベースコントローラー、または実際にcookies
にアクセスしたいコントローラーでinclude ActionController::Cookies
します。
つまり
class YourApiBaseController < ActionController::API
include ActionController::Cookies
または
class YourApiController < YourApiBaseController
include ActionController::Cookies
アプリケーションで ActionDispatch::Cookies を使えるようにする
config/application.rb
module YourApi
class Application < Rails::Application
config.middleware.use ActionDispatch::Cookies
その他
別途 session_store
と credentials.yml.enc
(旧バージョンの場合は secrets.yml*
)の設定はされている必要があります。
config/initializers/session_store.rb
Rails.application.config.session_store :cookie_store, key: 'your-cookie-key-comes-here'