19 个版本
2.0.0-rc.0 | 2024 年 8 月 2 日 |
---|---|
2.0.0-beta.10 | 2024 年 7 月 31 日 |
2.0.0-beta.7 | 2024 年 5 月 30 日 |
2.0.0-beta.3 | 2024 年 3 月 21 日 |
2.0.0-alpha.0 | 2023 年 5 月 24 日 |
#66 在 身份验证 中
每月 369 次下载
67KB
891 行
在您的 Tauri 应用中使用硬件安全密钥。
- 支持的平台:Windows、Linux、FreeBSD、NetBSD、OpenBSD 和 macOS。
安装
此插件需要至少 Rust 版本 1.75
我们推荐三种通用的安装方法。
- 使用 crates.io 和 npm(最简单,需要您信任我们的发布流程)
- 直接从 Github 使用 git 标签/修订哈希拉取源代码(最安全)
- 使用 Git 子模块在此 tauri 项目中安装此仓库,然后使用文件协议导入源代码(最安全,但使用不便)
通过以下行将 authenticator 插件安装到您的 Cargo.toml
文件中
src-tauri/Cargo.toml
# you can add the dependencies on the `[dependencies]` section if you do not target mobile
[target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies]
tauri-plugin-authenticator = "2.0.0-rc"
# alternatively with Git:
tauri-plugin-authenticator = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }
您可以使用您首选的 JavaScript 包管理器安装 JavaScript Guest 绑定
注意:由于大多数 JavaScript 包管理器无法从 git monorepos 安装包,我们为每个插件提供了只读镜像。这使得安装选项 2 更易于使用。
pnpm add @tauri-apps/plugin-authenticator
# or
npm add @tauri-apps/plugin-authenticator
# or
yarn add @tauri-apps/plugin-authenticator
或者使用 Git
pnpm add https://github.com/tauri-apps/tauri-plugin-authenticator#v2
# or
npm add https://github.com/tauri-apps/tauri-plugin-authenticator#v2
# or
yarn add https://github.com/tauri-apps/tauri-plugin-authenticator#v2
用法
首先,您需要将 authenticator 插件注册到 Tauri
src-tauri/src/main.rs
fn main() {
tauri::Builder::default()
.setup(|app| {
#[cfg(desktop)]
app.handle().plugin(tauri_plugin_authenticator::init())?;
Ok(())
})
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
之后,所有插件 API 都可以通过 JavaScript guest 绑定访问
import { Authenticator } from "@tauri-apps/plugin-authenticator";
const auth = new Authenticator();
auth.init(); // initialize transports
// generate a 32-bytes long random challenge
const arr = new Uint32Array(32);
window.crypto.getRandomValues(arr);
const b64 = btoa(String.fromCharCode.apply(null, arr));
// web-safe base64
const challenge = b64.replace(/\+/g, "-").replace(/\//g, "_");
const domain = "https://tauri.org.cn";
// attempt to register with the security key
const json = await auth.register(challenge, domain);
const registerResult = JSON.parse(json);
// verify the registration was successful
const r2 = await auth.verifyRegistration(
challenge,
app,
registerResult.registerData,
registerResult.clientData,
);
const j2 = JSON.parse(r2);
// sign some data
const json = await auth.sign(challenge, app, keyHandle);
const signData = JSON.parse(json);
// verify the signature again
const counter = await auth.verifySignature(
challenge,
app,
signData.signData,
clientData,
keyHandle,
pubkey,
);
if (counter && counter > 0) {
console.log("SUCCESS!");
}
贡献
接受 PR。请在提交拉取请求之前确保阅读贡献指南。
合作伙伴
欲获取完整的赞助商列表,请访问我们的网站和Open Collective。
许可证
代码:© 2015 - 现在 - 常见基金会的Tauri项目。
适用于MIT或MIT/Apache 2.0。
依赖项
~17–58MB
~896K SLoC