robius-authentication

Crates.iorobius-authentication
lib.rsrobius-authentication
version0.1.1
sourcesrc
created_at2024-06-12 00:11:53.866304
updated_at2024-11-01 00:22:10.555985
descriptionRust abstractions for multi-platform native authentication: biometrics, fingerprint, password, TouchID, FaceID, Windows Hello, etc.
homepagehttps://robius.rs/
repositoryhttps://github.com/project-robius/robius-authentication
max_upload_size
id1269042
size347,292
Kevin Boos (kevinaboos)

documentation

https://docs.rs/robius-authentication

README

robius-authentication

Latest Version Docs Project Robius Matrix Chat

Rust abstractions for multi-platform native authentication.

This crate supports:

  • Apple: TouchID, FaceID, and regular username/password on both macOS and iOS.
  • Android: See below for additional steps.
    • Requires the USE_BIOMETRIC permission in your app's manifest.
  • Windows: Windows Hello (face recognition, fingerprint, PIN), plus winrt-based fallback for username/password.
  • Linux: polkit-based authentication using the desktop environment's prompt.
    • Note: Linux support is currently incomplete.

Usage on Android

For authentication to work, the following must be added to your app's AndroidManifest.xml:

<uses-permission android:name="android.permission.USE_BIOMETRIC" />

Example

use robius_authentication::{
    AndroidText, BiometricStrength, Context, Policy, PolicyBuilder, Text, WindowsText,
};

let policy: Policy = PolicyBuilder::new()
    .biometrics(Some(BiometricStrength::Strong))
    .password(true)
    .watch(true)
    .build()
    .unwrap();

let text = Text {
    android: AndroidText {
        title: "Title",
        subtitle: None,
        description: None,
    },
    apple: "authenticate",
    windows: WindowsText::new("Title", "Description"),
};

let auth_result = Context::new(()).blocking_authenticate(text, &policy);
...

For more details about the prompt text, see the Text struct, which allows you to customize the prompt for each platform.

Commit count: 59

cargo fmt