https://github.com/princemaple/cookie_jar
CookieJar stores your cookies and applies them to future requests
https://github.com/princemaple/cookie_jar
cookie elixir http
Last synced: 6 months ago
JSON representation
CookieJar stores your cookies and applies them to future requests
- Host: GitHub
- URL: https://github.com/princemaple/cookie_jar
- Owner: princemaple
- License: mit
- Created: 2017-02-09T23:22:51.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2025-05-30T04:37:39.000Z (8 months ago)
- Last Synced: 2025-07-11T10:43:34.633Z (7 months ago)
- Topics: cookie, elixir, http
- Language: Elixir
- Homepage: https://hexdocs.pm/cookie_jar
- Size: 115 KB
- Stars: 14
- Watchers: 2
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# CookieJar
[](https://hex.pm/packages/cookie_jar)
[](https://hexdocs.pm/cookie_jar/)

## Installation
The package can be installed
by adding `cookie_jar` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[{:cookie_jar, "~> 1.0"}]
end
```
## Usage
1. Add alias (optional)
```elixir
alias CookieJar.HTTPoison, as: HTTPoison
```
2. Get a cookie jar
```elixir
{:ok, jar} = CookieJar.new
```
Alternatively, you can use a permenent cookie jar by starting one as part of your supervision tree:
```elixir
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
```diff
- HTTPoison.get("https://example.com/api/call")
+ HTTPoison.get(jar, "https://example.com/api/call")
```
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](https://hexdocs.pm/cookie_jar)**
- [How to directly use CookieJar](https://hexdocs.pm/cookie_jar/CookieJar.html#content)
- [HTTPoison adapter](https://hexdocs.pm/cookie_jar/CookieJar.HTTPoison.html#content)
- [HTTPotion adapter](https://hexdocs.pm/cookie_jar/CookieJar.HTTPotion.html#content)