4 个版本 (重大变更)
0.4.0 | 2024 年 6 月 11 日 |
---|---|
0.3.0 | 2024 年 1 月 4 日 |
0.2.0 | 2023 年 2 月 17 日 |
0.1.0 | 2021 年 1 月 19 日 |
#1040 在 身份验证
每月 50 次下载
39KB
691 行
mauth-client
mauth-client
此 crate 允许 Reqwest crate 的用户使用 MAuth 协议对 HTTP 请求进行签名,并验证响应。使用示例
注意:此 crate 和 Medidata 中的 Rust 支持被视为实验性的。在没有通过架构和安全小组批准整个堆栈的情况下,请不要发布任何代码到生产环境或部署到客户端可访问的环境。
use mauth_client::MAuthInfo;
use reqwest::Client;
let mauth_info = MAuthInfo::from_default_file().unwrap();
let client = Client::new();
let mut req = client.get("https://www.example.com/").build().unwrap();
mauth_info.sign_request(&mut req);
match client.execute(req).await {
Err(err) => println!("Got error {}", err),
Ok(response) => println!("Got validated response with body {}", response.text().await.unwrap()),
}
上述代码将从 ~/.mauth_config.yml
中的文件读取您的 mauth 配置,其格式为
common: &common
mauth_baseurl: https://<URL of MAUTH SERVER>
mauth_api_version: v1
app_uuid: <YOUR APP UUID HERE>
private_key_file: <PATH TO MAUTH KEY>
可选的 axum-service
功能提供了 Tower Layer 和 Service,它将通过 MAuth V2 或 V1 验证传入的请求,并通过 ValidatedRequestDetails 结构提供 lower layers 验证后的 app_uuid。
许可证:MIT
依赖项
~16–31MB
~506K SLoC