RailsでSaaSエンジンを構築しています。account#create メソッドで次のエラーが発生しています (warden gem が使用されています)。
ActionController::InvalidAuthenticityToken in Subscribem::AccountsController#create
ActionController::InvalidAuthenticityToken
Rails.root: /home/jma/Documents/subscribem/spec/dummy
Application Trace | Framework Trace | Full Trace
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"x5sWQF8eRjwD/fcbdI+MJ1Y1gg7u2x7QvCoN3h1/1UM=",
"account"=>{"name"=>"test",
"subdomain"=>"test",
"owner_attributes"=>{"email"=>"jan@ma.de",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]"}},
"commit"=>"Create Account"}
私のアプリケーションコントローラーは次のようになります。
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
end
を :null_session に変更するprotect_from_forgery with: :exception
とエラーは解消されますが、このサインアップ アクションの後にユーザーがログインする必要があり、:null_session は API 専用であるため、これはこの問題の適切な解決策ではないと思います。
また、このサイトは、サインアップしているユーザーの Cookie を作成していませんが、これは正しくないようです。
何か案は?