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.17"
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()
andCookie::parse_encoded()
methods are available. Theencoded
method returns a wrapper around aCookie
whoseDisplay
implementation percent-encodes the name and value of the cookie. Theparse_encoded
method percent-decodes the name and value of aCookie
during parsing. -
signed
Enables signed cookies via [
CookieJar::signed()
].When this feature is enabled, the [
CookieJar::signed()
] method, [SignedJar
] type, andKey
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, andKey
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
orprivate
are also enabled, theKey::derive_from()
method is available. The method can be used to derive aKey
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
, andkey-expansion
.
You can enable features via Cargo.toml
:
[dependencies.cookie]
features = ["secure", "percent-encode"]
Re-exports
pub use time;
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
whoseDisplay
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.
- Key
private
orsigned
A cryptographic master key for use withSigned
and/orPrivate
jars. - PrivateJar
private
A child cookie jar that provides authenticated encryption for its cookies. - An iterator over cookie parse
Result
s:Result<Cookie, ParseError>
.
Enums
- A cookie’s expiration: either session or a date-time.
- KeyError
private
orsigned
An error indicating an issue with generating or constructing a key. - Enum corresponding to a parsing error.
- The
SameSite
cookie attribute.