# `DripDrop.UnsubscribeToken`
[🔗](https://github.com/agoodway/dripdrop/blob/v0.1.0/lib/dripdrop/unsubscribe_token.ex#L1)

Signs and verifies one-click unsubscribe tokens.

# `payload`

```elixir
@type payload() :: %{
  :channel =&gt; String.t(),
  :recipient =&gt; String.t(),
  optional(:tenant_key) =&gt; String.t() | nil
}
```

# `sign`

```elixir
@spec sign(payload()) :: {:ok, String.t()} | {:error, :missing_unsubscribe_secret}
```

Signs an unsubscribe payload into a tamper-resistant token.

# `verify`

```elixir
@spec verify(String.t()) :: {:ok, payload()} | {:error, term()}
```

Verifies an unsubscribe token and returns the signed payload.

---

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