Nothing Special   »   [go: up one dir, main page]

Skip to content

Rust abstractions for multi-platform native authentication (biometric, fingerprint, password, FaceID, TouchID etc)

Notifications You must be signed in to change notification settings

saveoursecrets/robius-authentication

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Rust abstractions for multi-platform native authentication (biometric, fingerprint, password, FaceID, TouchID etc)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 97.8%
  • Java 2.2%