# `Mob.Biometric`
[🔗](https://github.com/genericjam/mob/blob/main/lib/mob/biometric.ex#L1)

Biometric authentication (Face ID / Touch ID / fingerprint).

No permission dialog is shown — uses the device's existing biometric enrollment.

    Mob.Biometric.authenticate(socket, reason: "Confirm payment")

Result arrives as:

    handle_info({:biometric, :success},       socket)
    handle_info({:biometric, :failure},        socket)
    handle_info({:biometric, :not_available},  socket)

`:not_available` is returned if the device has no biometric hardware or the
user has not enrolled any biometrics.

iOS: `LAContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, ...)`
Android: `BiometricPrompt`

# `authenticate`

```elixir
@spec authenticate(
  Mob.Socket.t(),
  keyword()
) :: Mob.Socket.t()
```

---

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