# CookieJar

[![ version](](
[![API Docs](](


## Installation

The package can be installed
by adding `cookie_jar` to your list of dependencies in `mix.exs`:

def deps do
  [{:cookie_jar, "~> 1.0"}]

## Usage

1. Add alias (optional)

alias CookieJar.HTTPoison, as: HTTPoison

2. Get a cookie jar

{:ok, jar} =

Alternatively, you can use a permenent cookie jar by starting one as part of your supervision tree:

def start(_type, _args) do
  children = [
  {CookieJar.Server, name: MyApp.CookieJar},

Then you can use `MyApp.CookieJar` as the application-wide jar.

3. Shove the jar into all http calls

- HTTPoison.get("")
+ HTTPoison.get(jar, "")

4. Profit (cookies imprisoned)
   All cookies from "Set-Cookie:" response headers are now stored in the jar and will be automatically sent back through "Cookie:" request headers. CookieJar respect the following attributes in the cookies:

- Domain: To limit abuses, CookieJar only allows `Domain` to be set to the current hostname of the request or its immediate parent domain.
- Path: A cookie can limit the sending back to part of the path tree in the request
- Secure: A secure cookie can only be set by https responses and used by https requests
- Max-Age: A cookie can specify its max age

All other attributes are silently ignored.

**Take a look at [the docs](**

- [How to directly use CookieJar](
- [HTTPoison adapter](
- [HTTPotion adapter](