hcaptcha

Crates.iohcaptcha
lib.rshcaptcha
version2.7.6
sourcesrc
created_at2020-11-08 10:03:58.56171
updated_at2024-10-24 05:58:40.576693
descriptionhCaptcha client response verification. Validate the hCaptcha response submitted from to your server from the client.
homepage
repositoryhttps://github.com/jerusdp/hcaptcha-rs
max_upload_size
id309834
size193,169
Jeremiah Russell (jerusdp)

documentation

https://docs.rs/hcaptcha

README

Rust library hcaptcha

Crates.io MIT licensed Build Status Rust 1.75+ Docs BuyMeaCoffee GitHubSponsors

The rust library hcaptcha is used with your backend service to verify the hcaptcha response provided from the client.

Installation

To use hcaptcha, add the following to your Cargo.toml:

[dependencies]
hcaptcha = "2.7.6"

Usage

Derive a validation method on the data structure representing your data, marking the captcha components in the data structure.

# use hcaptcha::Hcaptcha;

#[derive(Debug, Deserialize, Hcaptcha)]
pub struct ContactForm {
    name: String,
    phone: String,
    email: String,
    message: String,
    #[captcha]
    token: String,
}

Validate the captcha data.

    # #[tokio::main]
    # async main() -> Result<(), Box<dyn std::error::Error>> {
    let contact_form: ContactForm = serde_json::from_str(e.body_string())?;
    contact_form.valid_response(&secret, None).await?;
    # }
    # fn get_your_secret() -> String {
    #   "0x123456789abcde0f123456789abcdef012345678".to_string()
    # }

See the examples folder for an AWS Lambda contact form example.

Web Assembly

Hcaptcha has been tested in a web assembly project using wasm-bindgen and node.

See the hcaptcha-wasm example for a sample project which can be run using wasm-pack test --node.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Credits

Initial version based on recaptcha-rs by panicbit.

Commit count: 2509

cargo fmt