環境
- 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'