Skip to main content

05_authentication_requirements/
05_authentication_requirements.rs

1use localauthentication::prelude::*;
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4    let default_requirement = LAAuthenticationRequirement::default_requirement()?;
5    let biometry_requirement = LAAuthenticationRequirement::biometry_requirement()?;
6    let current_set_requirement = LAAuthenticationRequirement::biometry_current_set_requirement()?;
7    let fallback = LABiometryFallbackRequirement::device_passcode_requirement()?;
8    let fallback_requirement =
9        LAAuthenticationRequirement::biometry_requirement_with_fallback(&fallback)?;
10
11    let rights = [
12        LARight::new_with_requirement(&default_requirement)?,
13        LARight::new_with_requirement(&biometry_requirement)?,
14        LARight::new_with_requirement(&current_set_requirement)?,
15        LARight::new_with_requirement(&fallback_requirement)?,
16    ];
17
18    for (index, right) in rights.iter().enumerate() {
19        println!("right {index} state: {:?}", right.state()?);
20        println!("right {index} preflight: {:?}", right.check_can_authorize());
21    }
22
23    println!("✅ authentication requirements OK");
24    Ok(())
25}