# `Lightning.Workers.WorkerToken`
[🔗](https://github.com/OpenFn/lightning/blob/main/lib/lightning/workers.ex#L8)

JWT token configuration to authenticate workers.

# `generate_and_sign`

```elixir
@spec generate_and_sign(Joken.claims(), Joken.signer_arg()) ::
  {:ok, Joken.bearer_token(), Joken.claims()} | {:error, Joken.error_reason()}
```

Combines `generate_claims/1` and `encode_and_sign/2`

# `generate_and_sign!`

```elixir
@spec generate_and_sign!(Joken.claims(), Joken.signer_arg()) :: Joken.bearer_token()
```

Same as `generate_and_sign/2` but raises if error

# `verify_and_validate`

```elixir
@spec verify_and_validate(Joken.bearer_token(), Joken.signer_arg(), term()) ::
  {:ok, Joken.claims()} | {:error, Joken.error_reason()}
```

Combines `verify/2` and `validate/2`

# `verify_and_validate!`

```elixir
@spec verify_and_validate!(Joken.bearer_token(), Joken.signer_arg(), term()) ::
  Joken.claims()
```

Same as `verify_and_validate/2` but raises if error

---

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