Crate actix_web::cookie

source ·
Available on crate feature cookies only.
Expand description

HTTP cookie parsing and cookie jar management.

This crates provides the Cookie type, representing an HTTP cookie, and the CookieJar type, which manages a collection of cookies for session management, recording changes as they are made, and optional automatic cookie encryption and signing.

§Usage

Add the following to the [dependencies] section of your Cargo.toml:

cookie = "0.16"

§Features

This crate exposes several features, all of which are disabled by default:

  • percent-encode

    Enables percent encoding and decoding of names and values in cookies.

    When this feature is enabled, the Cookie::encoded() and Cookie::parse_encoded() methods are available. The encoded method returns a wrapper around a Cookie whose Display implementation percent-encodes the name and value of the cookie. The parse_encoded method percent-decodes the name and value of a Cookie during parsing.

  • signed

    Enables signed cookies via CookieJar::signed().

    When this feature is enabled, the CookieJar::signed() method, SignedJar type, and Key type are available. The jar acts as “child jar”; operations on the jar automatically sign and verify cookies as they are added and retrieved from the parent jar.

  • private

    Enables private (authenticated, encrypted) cookies via CookieJar::private().

    When this feature is enabled, the CookieJar::private() method, PrivateJar type, and Key type are available. The jar acts as “child jar”; operations on the jar automatically encrypt and decrypt/authenticate cookies as they are added and retrieved from the parent jar.

  • key-expansion

    Enables key expansion or key derivation via Key::derive_from().

    When this feature is enabled, and either signed or private are also enabled, the Key::derive_from() method is available. The method can be used to derive a Key structure appropriate for use with signed and private jars from cryptographically valid key material that is shorter in length than the full key.

  • secure

    A meta-feature that simultaneously enables signed, private, and key-expansion.

You can enable features via Cargo.toml:

[dependencies.cookie]
features = ["secure", "percent-encode"]

Modules§

Structs§

  • Representation of an HTTP cookie.
  • Structure that follows the builder pattern for building Cookie structs.
  • A collection of cookies that tracks its modifications.
  • Iterator over the changes to a cookie jar.
  • Wrapper around Cookie whose Display implementation either percent-encodes the cookie’s name and value, skips displaying the cookie’s parameters (only displaying it’s name and value), or both.
  • Iterator over all of the cookies in a jar.
  • A cryptographic master key for use with Signed and/or Private jars.
  • A child cookie jar that provides authenticated encryption for its cookies.
  • A child cookie jar that authenticates its cookies.

Enums§

  • A cookie’s expiration: either session or a date-time.
  • An error indicating an issue with generating or constructing a key.
  • Enum corresponding to a parsing error.
  • The SameSite cookie attribute.