0

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 を作成していませんが、これは正しくないようです。

何か案は?

4

1 に答える 1

0

Rails を使用したマルチテナント アプリの構築に関する Ryan Bigg の本を読んでいるようですね。

そのため、この問題は、ダミー アプリに適切なセッション cookie ドメインを設定する必要がある可能性が高くなります (デフォルトでは に設定されますexample.com)。

したがって、ダミーのアプリをsubscribem.dev(たとえば Pow 経由で) 実行している場合は、次のようにセッション cookie ドメインを設定spec/dummy/config/initializers/session_store.rbします。

Dummy::Application.config.session_store :cookie_store, key: '_dummy_session', domain: "subscribem.dev"
于 2015-09-25T14:47:46.953 に答える