hcaptcha_derive_no_wasm

Crates.iohcaptcha_derive_no_wasm
lib.rshcaptcha_derive_no_wasm
version3.0.0
created_at2024-12-14 16:41:29.333234+00
updated_at2024-12-14 16:41:29.333234+00
descriptionDerive macro for hCaptcha. Please use hcaptcha-no-wasm crate.
homepage
repositoryhttps://github.com/jerusdp/hcaptcha-rs
max_upload_size
id1483261
size37,019
trisua (trisuaso)

documentation

https://docs.rs/hcaptcha_derive_no_wasm

README

Rust library hcaptcha

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

This fork doesn't implement wasm as a target in order to keep the types Send.

Installation

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

[dependencies]
hcaptcha-no-wasm = "3.0.0"

Breaking changes with version 3.0.0

  • The Hcaptcha prefix has been removed from all types.
  • The default feature now uses rustls-backend and not the nativetls-backend.
  • The verify_client_response method has been deprecated in favour or the verify method.

Usage

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

# use hcaptcha_no_wasm::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: 3041

cargo fmt