특정 날짜에 시작 및 / 또는 만료되도록 Rails 쿠키를 설정하려면 어떻게해야합니까?
답변:
Rails 5 문서 에서 발췌 :
쿠키는 ActionController # cookies를 통해 읽고 씁니다.
읽고있는 쿠키는 요청과 함께 수신 된 쿠키이며 작성중인 쿠키는 응답과 함께 전송됩니다. 쿠키를 읽는 것은 쿠키 객체 자체를 가져 오는 것이 아니라 보유하고있는 값만 가져옵니다.
쓰기의 예 :
# Sets a simple session cookie. # This cookie will be deleted when the user's browser is closed. cookies[:user_name] = "david" # Sets a cookie that expires in 1 hour. cookies[:login] = { value: "XJ-122", expires: 1.hour } # Sets a cookie that expires at a specific time. cookies[:login] = { value: "XJ-122", expires: Time.utc(2020, 10, 15, 5) } # Sets a "permanent" cookie (which expires in 20 years from now). cookies.permanent[:login] = "XJ-122"
[...]
쿠키 설정을위한 옵션 기호는 다음과 같습니다.
:expires
-이 쿠키가 만료되는 시간 (Time 또는 ActiveSupport :: Duration 객체).[...]
cookies[:login] = { value: "JX-122", expires: 3.months }
오류가 발생합니다. 그러나 이것은 그렇지 않습니다. cookies[:login] = { value: "JX-122", expires: 3.months.from_now }
자세한 내용은 github.com/rack/rack/issues/864#issuecomment-104706555
귀하의 질문은 다음 질문과 관련이있을 수 있습니다. Rails에서 쿠키 기반 세션의 만료 시간을 동적으로 설정하는 방법
주석 중 하나는 Deprecating SlideSessions를 가리 킵니다 .
".. 애플리케이션의 모든 컨트롤러를 통해 세션의 만료 기간을 설정해야하는 경우 config / intializers / session_store.rb 파일에 다음 옵션을 추가하면됩니다.
:expire_after => 60.minutes
다른 컨트롤러 또는 작업에서 다른 만료 시간을 설정해야하는 경우 다음 코드를 사용하거나 before_filter를 사용합니다.
request.session_options = request.session_options.dup request.session_options[:expire_after]= 5.minutes request.session_options.freeze
적어도 : expire_after의 수정이 가능하고 완벽하게 작동하더라도 해시의 복제는 해당 시점에서 이미 동결 되었기 때문에 필요합니다 ... "
도움이 되었기를 바랍니다. :)