# `EzAuth.Sender`
[🔗](https://github.com/thiagomajesk/ez_auth/blob/v0.1.0/lib/ez_auth/sender.ex#L1)

Behaviour for delivering out-of-band authentication messages.

# `deliver`

```elixir
@callback deliver(event :: atom(), scope :: struct()) :: :ok | {:error, term()}
```

Delivers an auth message for the given event and scope.

When sender delivery fails with `{:error, reason}`, it does not abort the auth flow.
The result is propagated normally and may be handled by the configured handler via `handle_failure/3`.

# `maybe_invoke`

---

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