#password #fingerprint #authentication #biometric #robius #macos-ios #api-bindings

robius-authentication

Rust的多平台原生身份验证抽象:生物识别、指纹、密码、TouchID、FaceID、Windows Hello等

1 个不稳定版本

0.1.0 2024年6月12日

#297 in 操作系统

MIT 许可证

320KB
1K SLoC

robius-authentication

Latest Version Docs Project Robius Matrix Chat

Rust的多平台原生身份验证抽象。

此包支持

  • Apple:TouchID、FaceID,以及在macOS和iOS上的常规用户名/密码。
  • Android:请见下文以获取额外步骤。
    • 您的应用清单需要具有USE_BIOMETRIC权限。
  • Windows:Windows Hello(面部识别、指纹、PIN),以及基于winrt的回退用户名/密码。
  • Linux:使用桌面环境的提示进行的基于polkit的认证。
    • 注意:Linux支持目前尚不完整。

Android上的使用

为了使身份验证工作,以下内容必须添加到您的应用的AndroidManifest.xml

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

示例

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);
...

有关提示文本的更多详细信息,请参阅Text结构,它允许您为每个平台自定义提示。

依赖关系

~0–45MB
~642K SLoC