lc.cookies

January 18, 2026 · View on GitHub

Cookie management API for handling HTTP cookies in scripts.

Availability: Both (pre-request and post-response)

For the complete API reference, see Scripting API Reference.

Table of Contents


Overview

The lc.cookies API provides methods to read, write, and manage HTTP cookies:

  • Read cookies from responses
  • Set cookies for requests
  • Manage cookie lifecycle (delete, clear)
  • Generate Cookie header strings

Quick Reference

MethodDescription
get(name)Get cookie value by name
getAll()Get all cookies as array
set(name, value, options?)Set a cookie
delete(name)Remove a cookie
clear()Remove all cookies
has(name)Check if cookie exists
toHeader()Generate Cookie header string

Methods

get(name)

Returns the value of a cookie by name.

ParameterTypeRequiredDescription
namestringYesThe cookie name

Returns: string | undefined - The cookie value, or undefined if not found

var sessionId = lc.cookies.get("session_id");
if (sessionId) {
    console.log("Session: " + sessionId);
}

getAll()

Returns all cookies as an array of cookie objects.

Returns: array - Array of cookie objects with name, value, and options

var allCookies = lc.cookies.getAll();
allCookies.forEach(function(cookie) {
    console.log(cookie.name + " = " + cookie.value);
});

set(name, value, options?)

Sets a cookie with optional attributes.

ParameterTypeRequiredDescription
namestringYesThe cookie name
valuestringYesThe cookie value
optionsobjectNoCookie options (see below)

Returns: void

// Simple cookie
lc.cookies.set("user_id", "12345");

// Cookie with options
lc.cookies.set("auth_token", "abc123xyz", {
    domain: "api.example.com",
    path: "/",
    secure: true,
    httpOnly: true
});

delete(name)

Removes a cookie by name.

ParameterTypeRequiredDescription
namestringYesThe cookie name to delete

Returns: void

lc.cookies.delete("session_id");

clear()

Removes all cookies.

Returns: void

// Clear all cookies (e.g., for logout)
lc.cookies.clear();
console.log("All cookies cleared");

has(name)

Checks if a cookie exists.

ParameterTypeRequiredDescription
namestringYesThe cookie name to check

Returns: boolean - true if the cookie exists

if (lc.cookies.has("csrf_token")) {
    lc.request.headers.set("X-CSRF-Token", lc.cookies.get("csrf_token"));
}

toHeader()

Generates a Cookie header string from all cookies.

Returns: string - Cookie header value (e.g., "name1=value1; name2=value2")

// Add all cookies to request
var cookieHeader = lc.cookies.toHeader();
if (cookieHeader) {
    lc.request.headers.set("Cookie", cookieHeader);
}

When setting cookies with lc.cookies.set(), you can specify options:

PropertyTypeDescription
domainstringDomain scope for the cookie
pathstringPath scope for the cookie
securebooleanCookie sent only over HTTPS
httpOnlybooleanCookie inaccessible to client-side JavaScript
expiresstringExpiration date (RFC1123 format)
lc.cookies.set("session", "abc123", {
    domain: ".example.com",
    path: "/api",
    secure: true,
    httpOnly: true,
    expires: "Wed, 09 Jun 2024 10:18:14 GMT"
});

Examples

CSRF Token Workflow

// Post-response: Capture CSRF token from cookies
if (lc.cookies.has("csrf_token")) {
    var csrfToken = lc.cookies.get("csrf_token");
    lc.env.set("csrf_token", csrfToken);
    console.log("CSRF token captured");
}
// Pre-request: Use CSRF token
if (lc.cookies.has("csrf_token")) {
    // Add token to header
    lc.request.headers.set("X-CSRF-Token", lc.cookies.get("csrf_token"));

    // Include all cookies
    lc.request.headers.set("Cookie", lc.cookies.toHeader());
}

Session Management

// Pre-request: Check session validity
if (lc.cookies.has("session_id")) {
    console.log("Session cookie present");
    lc.request.headers.set("Cookie", lc.cookies.toHeader());
} else {
    console.warn("No session - request may fail");
}
// Post-response: Handle session expiry
if (lc.response.status === 401) {
    console.log("Session expired, clearing cookies");
    lc.cookies.clear();
    lc.env.unset("session_id");
}
// Post-response: Store authentication cookies
if (lc.response.status === 200) {
    var allCookies = lc.cookies.getAll();

    allCookies.forEach(function(cookie) {
        console.log("Received cookie: " + cookie.name);

        // Store important cookies in environment
        if (cookie.name === "auth_token" || cookie.name === "refresh_token") {
            lc.env.set("cookie_" + cookie.name, cookie.value);
        }
    });
}
// Pre-request: Set multiple cookies
lc.cookies.set("client_id", lc.env.get("client_id"));
lc.cookies.set("tracking_id", lc.variables.uuid());
lc.cookies.set("timestamp", Date.now().toString());

// Add all cookies to request
lc.request.headers.set("Cookie", lc.cookies.toHeader());

See Also


← lc.test | lc.crypto →