---
name: "Mojo::UserAgent::CookieJar"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "9.39+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojo::UserAgent::CookieJar"
---

# Mojo::UserAgent::CookieJar(3pm)

Cookie jar for HTTP user agents

## NAME

Mojo::UserAgent::CookieJar - Cookie jar for HTTP user agents

## SYNOPSIS

```
  use Mojo::UserAgent::CookieJar;
  # Add response cookies
  my $jar = Mojo::UserAgent::CookieJar->new;
  $jar->add(
    Mojo::Cookie::Response->new(
      name   => 'foo',
      value  => 'bar',
      domain => 'localhost',
      path   => '/test'
    )
  );
  # Find request cookies
  for my $cookie (@{$jar->find(Mojo::URL->new('http://localhost/test'))}) {
    say $cookie->name;
    say $cookie->value;
  }
```

## DESCRIPTION

Mojo::UserAgent::CookieJar is a minimalistic and relaxed cookie jar used by Mojo::UserAgent, based on RFC 6265 \<https://tools.ietf.org/html/rfc6265\>.

## ATTRIBUTES

Mojo::UserAgent::CookieJar implements the following attributes.

### file

```
  my $file = $jar->file;
  $jar     = $jar->file('/home/sri/cookies.txt');
```

File to "load" cookies from and "save" cookies to in Netscape format. Note that this attribute is **EXPERIMENTAL** and might change without warning!

```
  # Save cookies to file
  $jar->file('cookies.txt')->save;
  # Empty cookie jar and load cookies from file
  $jar->file('cookies.txt')->empty->load;
```

### ignore

```
  my $ignore = $jar->ignore;
  $jar       = $jar->ignore(sub {...});
```

A callback used to decide if a cookie should be ignored by "collect".

```
  # Ignore all cookies
  $jar->ignore(sub { 1 });
  # Ignore cookies for domains "com", "net" and "org"
  $jar->ignore(sub ($cookie) {
    return undef unless my $domain = $cookie->domain;
    return $domain eq 'com' || $domain eq 'net' || $domain eq 'org';
  });
```

### max\_cookie\_size

```
  my $size = $jar->max_cookie_size;
  $jar     = $jar->max_cookie_size(4096);
```

Maximum cookie size in bytes, defaults to `4096` (4KiB).

## METHODS

Mojo::UserAgent::CookieJar inherits all methods from Mojo::Base and implements the following new ones.

### add

```
  $jar = $jar->add(@cookies);
```

Add multiple Mojo::Cookie::Response objects to the jar.

### all

```
  my $cookies = $jar->all;
```

Return all Mojo::Cookie::Response objects that are currently stored in the jar.

```
  # Names of all cookies
  say $_->name for @{$jar->all};
```

### collect

```
  $jar->collect(Mojo::Transaction::HTTP->new);
```

Collect response cookies from transaction.

### empty

```
  $jar = $jar->empty;
```

Empty the jar.

### find

```
  my $cookies = $jar->find(Mojo::URL->new);
```

Find Mojo::Cookie::Request objects in the jar for Mojo::URL object.

```
  # Names of all cookies found
  say $_->name for @{$jar->find(Mojo::URL->new('http://example.com/foo'))};
```

### load

```
  $jar = $jar->load;
```

Load cookies from "file". Note that this method is **EXPERIMENTAL** and might change without warning!

### prepare

```
  $jar->prepare(Mojo::Transaction::HTTP->new);
```

Prepare request cookies for transaction.

### save

```
  $jar = $jar->save;
```

Save cookies to "file". Note that this method is **EXPERIMENTAL** and might change without warning!

### to\_string

```
  my $string = $jar->to_string;
```

Stringify cookies in Netscape format. Note that this method is **EXPERIMENTAL** and might change without warning!

## SEE ALSO

Mojolicious, Mojolicious::Guides, \<https://mojolicious.org\>.
