2013-08-07 2 views
0

새로운 Rails 앱에서이 오류가 발생하며 다소 혼란 스럽습니다. 레일즈 서버를 시작하고 인덱스 페이지를로드 할 수 있지만 다른 페이지를로드하려고 할 때레일 앱에 비밀 토큰 오류가 발생했습니다.

ArguemntError : 쿠키 세션 데이터의 무결성 해시를 생성하려면 비밀이 필요합니다. config/initializers/secret_token.rb에서 config.secret_token = "적어도 30 자 이상의 비밀 문구"를 사용하십시오.

이제 이상한 점은 실제로 .secret 파일이 있음을 확인한 것입니다. 나는 마이크 Hartl 튜토리얼에 따라 임의의 .secret 파일을 생성하도록 secret_token.rb 파일을 수정했습니다. .secret 파일이 실제로 있는지 확인했습니다. 사실, 그것을 삭제하고 서버를 재시작하여 새로운 서버가 생성되는지 확인했습니다. .secret 파일의 내용에는 실제로 30 자 이상의 문자열이 포함됩니다. 그러나이 오류가 발생합니다. 내가 여기서 무엇을 놓치고 있는지 잘 모르겠습니다.

나는 인터넷 검색을했는데 일부는이 오류가 서버 시작 후 너무 빨리 사이트에 액세스하여 발생하는 경쟁 조건과 관련이 있다고 느꼈습니다. 서버를 다시 시작하고 5 분을 기다린 다음 사이트에 액세스했습니다. 같은 문제. 나는이 오류가 왜 발생하는지 이해하지 못하고 있습니다. 어떤 도움이라도 대단히 감사하겠습니다.

SampleApp::Application.config.secret_key_base = secure_token 

에 :

+0

이 레일 3 또는 4에인가? Rails 4에서 secret_token.rb는 AppName :: Application.config.secret_key_base = 'XXXXX'입니다. –

+0

기본값 인 yes입니다. 그러나, 특히 gitHub와 같은 저장소를 사용할 때는 안전하지 않습니다. 요점은 하드 코딩 된 토큰을 사용하지 못하게하는 것이 었습니다. –

+0

오, 죄송합니다. 내가 수정 한 부분을 어떻게 든 놓쳤습니다. AppName이 실제로 앱의 이름인지 확인 했습니까? 기본 방법으로 다시 기본 설정을 시도해보고 오류가 계속 발생하여 해당 기능 또는 그보다 더 큰 무언가에 문제가있는 것이 있는지 확인할 수 있습니까? –

답변

0

전에서 secret_token.rb의 마지막 줄을 전환했다

Todo::Application.config.secret_token = secure_token 

는 이상과 생각을 통해 오류 메시지를 읽는했다.

0

당신이 당신의 environment.rb에이이 있는지 확인하십시오 :

YourApp::Application.initialize! 
관련 문제