Ustawianie daty rozpoczęcia i wygaśnięcia dla plików cookie Rails

Jak ustawić plik cookie Rails, aby zaczął się i / lub wygasał w określonym dniu?

Author: approxiblue, 2009-08-05

3 answers

Fragmenty Rails 5 documentation :

Pliki cookie są odczytywane i zapisywane za pomocą ActionController#cookies.

Odczytywane pliki cookie to te otrzymane wraz z żądaniem, zapisywane pliki cookie będą wysyłane wraz z odpowiedzią. Odczytanie pliku cookie nie zwraca samego obiektu cookie, tylko jego wartość.

Przykłady zapisu:

# 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"

[...]

Symbole opcji ustawiania plików cookie to:

  • :expires - Czas, w którym ten plik cookie wygasa, jako obiekt Time lub ActiveSupport::Duration.

[...]

 201
Author: Senthil Kumar Bhaskaran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-11 16:56:31

Twoje pytanie może być związane z tym pytaniem: Jak dynamicznie ustawić czas wygaśnięcia sesji opartej na plikach cookie w Rails

Jeden z komentarzy wskazuje na :

"..Jeśli chcesz ustawić okres ważności do sesji za pośrednictwem wszystkich kontrolerów w aplikacji wystarczy dodać following option to your config/intializers / session_store.rb plik:

:expire_after => 60.minutes

Jeśli chcesz ustawić inny wygaśnięcie time in different kontrolerów lub akcji, użyj następujący kod w działaniu lub jakiś before_filter:

request.session_options = request.session_options.dup
request.session_options[:expire_after]= 5.minutes
request.session_options.freeze

Duplikacja hasha jest potrzebna tylko ponieważ jest już zamrożony w tym punkt, mimo że modyfikacja at najmniej: expire_after jest możliwe i działa bez zarzutu..."

Mam nadzieję, że to pomoże. :)
 18
Author: pageman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:12

Warto zauważyć, że w tej chwili nie można ustawić czasu rozpoczęcia pliku cookie. Zestaw plików cookie jest zawsze aktywny natychmiast.

 4
Author: eltiare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-29 16:39:49