mediawiki-extensions-Confir.../Turnstile/includes/TurnstileAuthenticationRequest.php
Jayden Bailey fbf6c1c7ea Add Turnstile support
This is a rudimentary implementation of Cloudflare's Turnstile captcha alternative.

Since it is fairly similar to ReCaptchaNoCaptcha, there is some duplicate code used here. I opted not to use the migration path that CF has for reCAPTCHA v2 and build this as a separate implementation. After T324925, it should be easy to refactor this code.

Users should set $wgTurnstileSiteKey and $wgTurnstileSecretKey as appropriate, based on details from the Cloudflare dashboard.

Bug: T319068
Change-Id: I0d5a74655619975f0bf61b5b672159afe5f4fb00
2024-01-15 19:31:24 +00:00

39 lines
887 B
PHP

<?php
namespace MediaWiki\Extension\ConfirmEdit\Turnstile;
use MediaWiki\Auth\AuthenticationRequest;
use MediaWiki\Extension\ConfirmEdit\Auth\CaptchaAuthenticationRequest;
/**
* Authentication request for Turnstile. Functions almost identically to ReCaptchaNoCaptchaAuthenticationRequest.
*/
class TurnstileAuthenticationRequest extends CaptchaAuthenticationRequest {
public function __construct() {
parent::__construct( '', [] );
}
/**
* @inheritDoc
*/
public function loadFromSubmission( array $data ) {
// unhack the hack in parent
return AuthenticationRequest::loadFromSubmission( $data );
}
/**
* @inheritDoc
*/
public function getFieldInfo() {
$fieldInfo = parent::getFieldInfo();
return [
'captchaWord' => [
'type' => 'string',
'label' => $fieldInfo['captchaInfo']['label'],
'help' => wfMessage( 'turnstile-help' ),
],
];
}
}