Network.CGI.Cookie

cgi-3001.2.2.2: A library for writing CGI programs

Copyright | (c) Bjorn Bringert 2004-2005 (c) Ian Lynagh 2005
License | BSD-style
Maintainer | John Chee <cheecheeo@gmail.com>
Stability | experimental
Portability | portable General server side HTTP cookie library. Based on <http://wp.netscape.com/newsref/std/cookie_spec.html>
Safe Haskell | Safe
Language | Haskell98

Network.CGI.Cookie

Description

TODO

- Add client side stuff (basically parsing Set-Cookie: value)
- Update for RFC2109 http://www.ietf.org/rfc/rfc2109.txt

Synopsis

- data Cookie = Cookie {
  - cookieName :: String
  - cookieValue :: String
  - cookieExpires :: Maybe CalendarTime
  - cookieDomain :: Maybe String
  - cookiePath :: Maybe String
  - cookieSecure :: Bool
  }
- newCookie :: String -> String -> Cookie
- findCookie :: String -> String -> Maybe String
- deleteCookie :: Cookie -> Cookie
- showCookie :: Cookie -> String
- readCookies :: String -> [(String, String)]

# Documentation

data Cookie

Contains all information about a cookie set by the server.

Constructors

Cookie |
Fields cookieName :: String Name of the cookie. cookieValue :: String Value of the cookie. cookieExpires :: Maybe CalendarTime Expiry date of the cookie. If `Nothing`, the cookie expires when the browser sessions ends. If the date is in the past, the client should delete the cookie immediately. cookieDomain :: Maybe String The domain suffix to which this cookie will be sent. cookiePath :: Maybe String The path to which this cookie will be sent. cookieSecure :: Bool `True` if this cookie should only be sent using secure means.

Instances

Eq Cookie |
Ord Cookie |
Read Cookie |
Show Cookie |

newCookie

Arguments

:: String | Name
-> String | Value
-> Cookie | Cookie

Construct a cookie with only name and value set. This client will expire when the browser sessions ends, will only be sent to the server and path which set it and may be sent using any means.

findCookie

Arguments

:: String | Cookie name
-> String | Semicolon separated list of name-value pairs
-> Maybe String | Cookie value, if found

Get the value of a cookie from a string on the form `"cookieName1=cookieValue1;...;cookieName2=cookieValue2"`. This is the format of the `Cookie` HTTP header.

deleteCookie

Arguments

:: Cookie | Cookie to delete. The only fields that matter are `cookieName`, `cookieDomain` and `cookiePath`
-> Cookie |

Delete a cookie from the client by setting the cookie expiry date to a date in the past.

showCookie :: Cookie -> String

Show a cookie on the format used as the value of the Set-Cookie header.

readCookies

Arguments

:: String | String to parse
-> [(String, String)] | Cookie name - cookie value pairs

Gets all the cookies from a Cookie: header value