0

레일에 saas 엔진을 구축 중입니다. 나는 (소장 보석을 사용) 계정 번호에 다음과 같은 오류로 방법을 만들 실행하고 있습니다 :ActionController :: 레일스 엔진의 InvalidAuthenticityToken

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"=>"[email protected]", 
"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 

protect_from_forgery with: :exception에 변경 : null_session를 오류가 사라집니다하지만 나는이 문제에 대한 올바른 해결책이 아니라고 생각합니다. 사용자가 로그인하지 않은 상태에서 로그인해야하고 null_session은 API에만 해당됩니다.

사이트에 가입중인 사용자의 쿠키가 제대로 작성되지 않았습니다.이 쿠키는 옳지 않은 것처럼 보입니다.

아이디어가 있으십니까?

답변

0

레일스로 멀티 테넌트 앱을 제작하는 방법에 대한 라이언 빅의 책을 읽고 있습니다.

감안할 때, 더미 응용 프로그램에 대해 세션 쿠키 도메인을 적절히 설정해야 할 가능성이 높습니다 (기본적으로 example.com으로 설정 됨). 당신이 (예를 들어, 탕 통해) subscribem.dev에 당신의 더미 응용 프로그램을 실행중인 경우 다음과 같이

그래서 당신은 spec/dummy/config/initializers/session_store.rb에 세션 쿠키 도메인을 설정합니다 :

Dummy::Application.config.session_store :cookie_store, key: '_dummy_session', domain: "subscribem.dev"