Packages
mob
0.5.14
0.7.20
0.7.19
0.7.18
0.7.17
0.7.16
0.7.15
0.7.14
0.7.13
0.7.12
0.7.11
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.26
0.6.25
0.6.24
0.6.23
0.6.22
0.6.21
0.6.20
0.6.19
0.6.18
0.6.17
0.6.16
0.6.15
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.2
0.6.1
0.6.0
0.5.18
0.5.17
0.5.16
0.5.15
0.5.14
0.5.11
0.5.10
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.0
BEAM-on-device mobile framework for Elixir
Current section
Files
Jump to
Current section
Files
lib/mob/biometric.ex
defmodule Mob.Biometric do
@moduledoc """
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`
"""
@spec authenticate(Mob.Socket.t(), keyword()) :: Mob.Socket.t()
def authenticate(socket, opts \\ []) do
reason = Keyword.get(opts, :reason, "Authenticate")
:mob_nif.biometric_authenticate(reason)
socket
end
end