feat(recaptcha): Add documentation for new fields

This commit is contained in:
nexy7574 2025-07-08 19:03:35 +01:00
parent 651d07a609
commit df1cb10a8e
No known key found for this signature in database
GPG key ID: 0FA334385D0B689F
2 changed files with 29 additions and 15 deletions

View file

@ -298,14 +298,14 @@ pub(crate) async fn register_route(
session: None,
auth_error: None,
};
let mut skip_auth = false;
let mut skip_auth = body.appservice_info.is_some();
if services.globals.registration_token.is_some() {
// Registration token required
uiaainfo.flows.push(AuthFlow {
stages: vec![AuthType::RegistrationToken],
});
skip_auth = body.appservice_info.is_some();
}
if !services.config.recaptcha_private_site_key.is_none() {
if let Some(pubkey) = &services.config.recaptcha_site_key {
// ReCaptcha required
uiaainfo
@ -317,7 +317,8 @@ pub(crate) async fn register_route(
},
}))
.expect("Failed to serialize recaptcha params");
skip_auth = body.appservice_info.is_some() || skip_auth;
skip_auth = skip_auth || is_guest;
}
} else {
// No registration token necessary, but clients must still go through the flow
uiaainfo = UiaaInfo {
@ -327,7 +328,7 @@ pub(crate) async fn register_route(
session: None,
auth_error: None,
};
skip_auth = skip_auth || body.appservice_info.is_some() || is_guest;
skip_auth = skip_auth || is_guest;
};
if !skip_auth {

View file

@ -556,8 +556,21 @@ pub struct Config {
/// example: "/etc/continuwuity/.reg_token"
pub registration_token_file: Option<PathBuf>,
/// The public site key for reCaptcha. If this is provided, reCaptcha
/// becomes required during registration, **even if token registration is
/// enabled**.
///
/// IMPORTANT: "Verify the origin of reCAPTCHA solutions" **MUST** BE
/// DISABLED IF YOU WANT THE CAPTCHA TO WORK IN 3RD PARTY CLIENTS, OR
/// CLIENTS HOSTED ON DOMAINS OTHER THAN YOUR OWN!
///
/// Registration must be enabled (`allow_registration` must be true) for
/// this to have any effect.
pub recaptcha_site_key: Option<String>,
/// The private site key for reCaptcha.
/// If this is omitted, captcha registration will not work,
/// even if `recaptcha_site_key` is set.
pub recaptcha_private_site_key: Option<String>,
/// Controls whether encrypted rooms and events are allowed.