Jak pobrać czas życia danego ciasteczka?

Ciasteczka (ang. cookies) są nieodłączną częścią współczesnych stron internetowych. Bez nich przeglądanie internetu byłoby mniej przyjemne – zapomniane loginy, utracone koszyki zakupowe czy brak personalizacji to tylko niektóre z problemów, jakie mogłyby wystąpić. Ale co jeśli chcesz dowiedzieć się, ile czasu dany plik cookie będzie jeszcze aktywny? Spokojnie, zaraz Ci to wytłumaczę, krok po kroku.

Co to jest czas życia ciasteczka?

Czas życia ciasteczka to okres, przez jaki dane ciasteczko będzie przechowywane w przeglądarce użytkownika, zanim zostanie automatycznie usunięte. Ciasteczko może mieć:

  1. Czas życia sesyjny – działa tylko do momentu zamknięcia przeglądarki.
  2. Określony czas życia – działa do konkretnej daty lub przez określoną liczbę dni, godzin czy sekund.

Jeśli chcesz poznać, jak długo ciasteczko będzie aktywne, musisz zrozumieć, jak są one zapisywane i odczytywane przez przeglądarki.

Jak sprawdzić czas życia ciasteczka?

Najpierw musisz zlokalizować ciasteczko, które chcesz zbadać. Możesz to zrobić na kilka sposobów, zarówno korzystając z narzędzi przeglądarki, jak i za pomocą kodu.

1. Użycie narzędzi deweloperskich w przeglądarce

Każda nowoczesna przeglądarka ma wbudowane narzędzia dla programistów, które umożliwiają podgląd ciasteczek.

  1. Otwórz stronę internetową.
  2. Uruchom narzędzia deweloperskie (zazwyczaj skrót F12 lub Ctrl + Shift + I).
  3. Przejdź do zakładki „Application” (w Chrome i Edge) lub „Storage” (w Firefox).
  4. W menu po lewej wybierz „Cookies”, a następnie domenę strony, którą odwiedzasz.
  5. W tabeli zobaczysz listę ciasteczek, gdzie jedna z kolumn to „Expires”.

Kolumna „Expires” pokazuje dokładną datę i godzinę wygaśnięcia ciasteczka. Jeśli ta wartość jest pusta, oznacza to, że ciasteczko jest sesyjne i zostanie usunięte po zamknięciu przeglądarki.

2. Użycie kodu JavaScript w konsoli przeglądarki

Jeśli chcesz bardziej precyzyjnie zbadać ciasteczka lub automatycznie odczytać ich czas życia, możesz użyć JavaScriptu.

  1. Otwórz konsolę przeglądarki (F12 → zakładka „Console”).
  2. Wpisz poniższy kod, aby zobaczyć wszystkie ciasteczka:
document.cookie.split('; ').forEach(cookie => {
    console.log(cookie);
});

Ten kod wyświetli listę ciasteczek w formacie nazwa=wartość. Niestety, metoda document.cookie nie pozwala odczytać daty wygaśnięcia ciasteczka.

Aby uzyskać więcej informacji o czasie życia, możesz użyć Web APIs, takich jak Cookies API w przeglądarce lub wywołać odpowiedni endpoint na serwerze, jeśli ciasteczko jest ustawione przez backend.

Jak odczytać czas życia ciasteczka za pomocą JavaScript?

Ciasteczka z czasem życia definiowanym są ustawiane z parametrem expires lub max-age. Możesz je ustawić i odczytać w JavaScript.

Przykład ustawiania ciasteczka z czasem życia:

document.cookie = "test_cookie=value; max-age=3600; path=/"; // Ciasteczko ważne przez 1 godzinę

Tutaj:

  • max-age=3600 oznacza, że ciasteczko będzie ważne przez 3600 sekund (1 godzina).
  • path=/ określa, że ciasteczko jest dostępne w całej witrynie.

Jak odczytać ustawione ciasteczko?

Możesz wywołać funkcję, która znajdzie interesujące Cię ciasteczko i określi jego czas życia:

function getCookieExpiry(cookieName) {
    const cookies = document.cookie.split('; ');
    for (const cookie of cookies) {
        const [name, value] = cookie.split('=');
        if (name === cookieName) {
            console.log(`Ciasteczko ${name} znalezione: ${value}`);
            return "Nie da się odczytać czasu wygaśnięcia z poziomu JavaScriptu :(";
        }
    }
    return `Ciasteczko ${cookieName} nie istnieje.`;
}

console.log(getCookieExpiry('test_cookie'));

Niestety, jak już wspomniałem, JavaScript w przeglądarce nie umożliwia bezpośredniego odczytania expires. Dlatego…

Co zrobić, jeśli ciasteczko jest ustawiane po stronie serwera?

Jeśli ciasteczko jest ustawiane przez serwer, najlepiej odczytać jego właściwości w kodzie serwerowym. Oto przykład w Node.js z użyciem biblioteki Express:

Kod w Node.js:

const express = require('express');
const cookieParser = require('cookie-parser');

const app = express();
app.use(cookieParser());

// Endpoint ustawiający ciasteczko
app.get('/set-cookie', (req, res) => {
    res.cookie('example_cookie', 'hello_world', { maxAge: 60000 }); // 1 minuta
    res.send('Ciasteczko ustawione!');
});

// Endpoint odczytujący ciasteczka
app.get('/get-cookie', (req, res) => {
    const cookie = req.cookies['example_cookie'];
    if (cookie) {
        res.send(`Ciasteczko znalezione: ${cookie}`);
    } else {
        res.send('Nie znaleziono ciasteczka.');
    }
});

app.listen(3000, () => console.log('Serwer działa na porcie 3000'));

Tutaj możesz ręcznie zarządzać czasem życia ciasteczek, definiując maxAge w milisekundach.

Dowiedzenie się, ile czasu pozostało do wygaśnięcia ciasteczka, zależy od narzędzi i kontekstu, w którym pracujesz:

  • Narzędzia przeglądarki są najłatwiejszym sposobem dla początkujących.
  • JavaScript pozwala zarządzać ciasteczkami, ale nie daje dostępu do daty wygaśnięcia.
  • Serwerowa analiza ciasteczek daje pełną kontrolę.

Zastosowanie powyższych metod pozwala lepiej zrozumieć, jak działają ciasteczka i jak je efektywnie wykorzystywać.

Szukasz taniego i dobrego hostingu dla swojej strony www? - Sprawdź Seohost.pl