2008-10-10 2 views
8

Rails 세션 비밀에 프로그래밍 방식으로 액세스하고 싶습니다 (서명 토큰을 생성하는 데 사용하고 있습니다).Rails 세션 비밀을 읽는 가장 좋은 방법은 무엇입니까?

ActionController::Base.session.first[:secret] 

이 세션의 비밀을 반환 내가 가지고 올 한 내용

는 여기에 있습니다. 그러나 때마다 당신은 ActionController 전화 : Base.session 그것은이 같은 끝낼 수 있도록 배열에 다른 항목을 추가

[{:session_key=>"_new_app_session", :secret=>"totally-secret-you-guys"}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}] 

이 더 좋은 것없는 나를 친다.

세션 암호에 액세스하는 더 좋은 방법이 있습니까?

답변

2
ActionController::Base.session_options_for(request,params[:action])[:secret] 
5

감사합니다. Jake.

비밀이 요청 또는 조치에 따라 변경하지 않기 때문에,이 또한 작동 : 레일 2.3

ActionController::Base.session_options_for(nil,nil)[:secret] 
1

, 내가 사용했습니다 :

ActionController::Base.session_options[:secret] 
+0

쿨, 깨끗해 보입니다. 업그레이드 할 때 코드를 업데이트해야합니다. –

11

Rails4

들어
Rails.configuration.secret_token 
Rails.configuration.secret_key_base 

레일즈 용

Rails.configuration.secret_token 

그러나 Rails2.x를 들어, 돈 교구처럼 레일 3

ActionController::Base.session_options[:secret] 
+0

나는 둘 모두를 얻지 못한다. 이건 정상이 아니지? 나는'config/secrets.yml' 파일을 며칠 전에 소개했는데 아마도 읽히지 않았을까요? –

+1

해당 파일에 추가 된 비밀 정보는'Rails.application.secrets'를 통해 접근 할 수 있습니다. – zenw0lf

0

을 언급 한 경우 Rails.configuration.secret_token가 동작하기 때문에, Rails.configuration은 제공 choonkeat 무엇으로, Rails.application.config에 동일 .

관련 문제