2012-09-04 1 views
2

, 당신은 write a cookie 다음과 같이 할 수 있습니다 : 내가 너무 옵션으로 사용할 수 :max_age을 기대레일즈에서 어떻게 쿠키의 최대 - 연령을 설정할 수 있습니까? 레일 3.2.8에서

:value 
:path 
:domain 
:expires 
:secure 
:httponly 

:

cookies[:login] = { 
    :value => "XJ-122", 
    :expires => 1.hour.from_now 
} 

워드 프로세서

이 가능한 옵션 상징이라고 , 아마도 user agent support is not widespread enough yet (?)을 포함하여 보증해야합니다.

그래서 레일스에 쿠키 Max-Age을 어떻게 설정해야합니까?

+0

왜이 작업을 수행 하시겠습니까? * (난 궁금해서) * – deefour

+0

시간 구성이 일치하지 않는 여러 로컬 및 원격 응용 프로그램에 사용되는 모듈에서이 작업을 수행하려고합니다. '막스 에이지 (Max-Age)'는 더 간단해질 것이다. – GladstoneKeep

답변

2

나는 the Rails source code for ActionDispatch::Cookies을 읽었습니다. how the handle_options method is used을 보면 문서에 명시되지 않은 짝수 옵션도 전달된다는 것을 알 수 있습니다. 레일스는 대개 옵션을 상당히 자유롭게 전달합니다. 철학을 통해 어딘가에있는 메소드는 왼쪽 옵션을 사용하여 무엇을해야하는지 알 수 있습니다.

따라서 문서화되어 있지는 않지만 :max_age 옵션을 사용해보십시오.

주 : 레일은 Rack to set the cookie header에 의존, 그래서 몇 가지 이유 "최대 에이지", "설정 - 쿠키를 위해"헤더 랙에 전달되는하지만 통해 전달되는 하지 경우, 나는에 이상 물어 보곤 Github Rack 문제 추적기.

업데이트 # 1 : Max-Age 및 Rack과 관련된 하나 이상의 끌어 오기 요청이 있었지만 관련이 있는지 잘 모르겠습니다. 위의 방법으로도 문제가 해결되지 않으면 위에 언급 한대로 Rack 티켓 추적기에 대해상의하십시오.

업데이트 # 2 : Rack::Cache 미들웨어를 보았습니까? 그것은 유용 할 수 있습니다.

+0

궁극적으로': max_age',': 'max-age''와''Max-Age'' (3 가지 시도 모두)는 Rack에서 무시됩니다. 이 모든 옵션들은 실제로':: Rack :: Utils.set_cookie_header! '(actionpack-3.2.3/lib/action_dispatch/middleware/cookies.rb : 231)로 전달되며, 무시됩니다. – GladstoneKeep

+0

랙에 티켓을 게시하거나 해결 방법을 찾으면 여기에서 공유 할 예정입니까? –

+0

[내 랙 포크에': max_age'를 추가했습니다.] (https://github.com/matthewtoast/rack/commit/6779daa5646b8de27efdf0894453fb36bd36630d). [유사한 pull 요청이 막 닫혔으므로] pull 요청으로 제출해야하는지 잘 모르겠습니다 (https://github.com/rack/rack/pull/264). – GladstoneKeep

관련 문제