# `Teac.Plug.CacheBodyReader`
[🔗](https://codeberg.org/FullStacking/teac)

A `Plug.Parsers` body reader that caches the raw request body in `conn.assigns`.

Use this with `Plug.Parsers` in your Phoenix `Endpoint` so that
`Teac.Plug.EventSub` can verify the Twitch HMAC signature after the body
has already been parsed.

## Endpoint configuration

    plug Plug.Parsers,
      parsers: [:urlencoded, :multipart, :json],
      pass: ["*/*"],
      body_reader: {Teac.Plug.CacheBodyReader, :read_body, []},
      json_decoder: JSON

The raw body is stored under `conn.assigns[:raw_body]` as a binary string.

# `read_body`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
