1个不稳定版本
0.1.0 | 2023年10月4日 |
---|
#423 在 HTTP客户端
20KB
272 行
cf-turnstile
Cloudflare Turnstile的Rust客户端。
示例
use cf_turnstile::{SiteVerifyRequest, TurnstileClient};
let client = TurnstileClient::new("my-secret".to_string().into());
let validated = client.siteverify(SiteVerifyRequest {
response: "myresponse".to_string(),
..Default::default()
}).await?;
assert!(validated.success);
功能
幂等性
要利用Turnstile的indempotency_key
功能,您可以在SiteVerifyRequest
结构和generate_indepotency_key
函数上启用idempotency
功能标志。
这将启用idempotency_key
字段,并启用generate_indepotency_key
函数。
TLS
注意:不支持在不启用任何TLS功能的情况下使用代理;Turnstile的API仅支持HTTPS。
注意:此TLS代码取自twilight-http
,遵循其许可证。
cf-turnstile
具有与hyper
启用HTTPS连接的功能。这些功能互斥。默认启用rustls-native-roots
。
本地
native
功能使用由hyper-tls
提供的HTTPS连接器。
要启用native
,在您的Cargo.toml
中做如下操作
[dependencies]
cf-turnstile = { default-features = false, features = ["native"], version = "0.1" }
rustls-native-roots
rustls-native-roots
功能使用由hyper-rustls
提供的HTTPS连接器,该连接器使用rustls
作为TLS后端,并启用其native-tokio
功能,该功能使用rustls-native-certs
作为根证书。
默认启用此功能。
rustls-webpki-roots
rustls-webpki-roots
功能使用由 hyper-rustls
提供的 HTTPS 连接器,该连接器使用 rustls
作为 TLS 后端,并启用其 webpki-tokio
功能,该功能使用 webpki-roots
进行根证书。
在基于 scratch
的 Docker 容器中,应优先选择此功能而不是 rustls-native-roots
。
Trust-DNS
trust-dns
启用了 hyper-trust-dns
,它替换了 hyper
中的默认 GaiResolver
。 hyper-trust-dns
而是在应用级别提供了一个完全异步的 DNS 解析器。
依赖关系
~7–20MB
~298K SLoC