type
Cookie
src
@Js
const class Cookie : Obj
Cookie models an HTTP cookie used to pass data between the server and user agent as defined by RFC 6265.
See WebReq.cookies
and WebRes.cookies
.
constructors
fields
domain |
Specifies the domain for which the cookie is valid. |
---|---|
httpOnly |
If true, then the cookie is not available to JavaScript. |
maxAge |
Defines the lifetime of the cookie, after the the max-age elapses the client should discard the cookie. |
name |
Name of the cookie. |
path |
Specifies the subset of URLs to which the cookie applies. |
sameSite |
If this value is non-null, then we add the SameSite attribute to the cookie. |
secure |
If true, then the client only sends this cookie using a secure protocol such as HTTPS. |
val |
Value string of the cookie. |
methods
toStr |
Return the cookie formatted as an Set-Cookie HTTP header. |
---|
Slot Details
domain
fromStr
httpOnly
make
src
new make(Str name, Str val, |This|? f := null)
Construct with name and value. The name must be a valid HTTP token and must not start with "$" (see WebUtil.isToken
). The value string must be an ASCII string within the inclusive range of 0x20 and 0x7e (see WebUtil.toQuotedStr
) with the exception of the semicolon.
Fantom cookies will use quoted string values, however some browsers such as IE won't parse a quoted string with semicolons correctly, so we make semicolons illegal. If you have a value which might include non-ASCII characters or semicolons, then consider encoding using something like Base64:
// write response res.cookies.add(Cookie("baz", val.toBuf.toBase64)) // read from request val := Buf.fromBase64(req.cookies.get("baz", "")).readAllStr
maxAge
Defines the lifetime of the cookie, after the the max-age elapses the client should discard the cookie. The duration is floored to seconds (fractional seconds are truncated). If maxAge is null (the default) then the cookie persists until the client is shutdown. If zero is specified, the cookie is discarded immediately. Note that many browsers still don't recognize max-age, so setting max-age also always includes an expires attribute.