1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2025-08-07 17:03:01 +03:00

Cloudflare Turnstile support

This commit is contained in:
Quentin Gliech
2024-05-11 10:29:45 +02:00
parent a3beeb2398
commit f9ae7ae313
7 changed files with 25 additions and 3 deletions

View File

@@ -129,6 +129,9 @@ pub fn captcha_config_from_config(
let service = match service {
mas_config::CaptchaServiceKind::RecaptchaV2 => mas_data_model::CaptchaService::RecaptchaV2,
mas_config::CaptchaServiceKind::CloudflareTurnstile => {
mas_data_model::CaptchaService::CloudflareTurnstile
}
};
Ok(Some(mas_data_model::CaptchaConfig {

View File

@@ -23,6 +23,10 @@ pub enum CaptchaServiceKind {
/// Use Google's reCAPTCHA v2 API
#[serde(rename = "recaptcha_v2")]
RecaptchaV2,
/// Use Cloudflare Turnstile
#[serde(rename = "cloudflare_turnstile")]
CloudflareTurnstile,
}
/// Configuration section to setup CAPTCHA protection on a few operations

View File

@@ -19,6 +19,7 @@ use url::Url;
#[derive(Debug, Clone)]
pub enum CaptchaService {
RecaptchaV2,
CloudflareTurnstile,
}
/// Captcha configuration

View File

@@ -30,6 +30,9 @@ impl Object for CaptchaConfig {
match key.as_str() {
Some("service") => Some(match &self.0.service {
mas_data_model::CaptchaService::RecaptchaV2 => "recaptcha_v2".into(),
mas_data_model::CaptchaService::CloudflareTurnstile => {
"cloudflare_turnstile".into()
}
}),
Some("site_key") => Some(self.0.site_key.clone().into()),
_ => None,