fix(captcha): close human-verification loop end-to-end

Rewrite captcha core around aksrt_captcha_config only, require captcha
on login/comment/SMS/phone auth and related gates, wire frontend token
collection, and remove dead dual-source security settings plus slider enqueue.
This commit is contained in:
kate522 committed 2026-07-13 19:52:30 +08:00
1 parent a0808bbe54
commit 02f77b756c
21 files changed
+1163 -1515

No files matched your search

@@ -47,12 +47,10 @@ trait AKSRT_Auth_Service_Part_1a {
return ['success' => false, 'error' => $password_check];
}
if (function_exists('aksrt_is_captcha_enabled_for') && aksrt_is_captcha_enabled_for('register')) {
if (function_exists('aksrt_verify_captcha')) {
$captcha_result = aksrt_verify_captcha($post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
if (function_exists('aksrt_require_captcha')) {
$captcha_result = aksrt_require_captcha('register', $post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
}
@@ -154,12 +152,10 @@ trait AKSRT_Auth_Service_Part_1a {
return ['success' => false, 'error' => __('安全验证失败,请刷新页面重试', 'aksrt')];
}
if (function_exists('aksrt_is_captcha_enabled_for') && aksrt_is_captcha_enabled_for('bind')) {
if (function_exists('aksrt_verify_captcha')) {
$captcha_result = aksrt_verify_captcha($post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
if (function_exists('aksrt_require_captcha')) {
$captcha_result = aksrt_require_captcha('bind', $post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
}
@@ -371,12 +367,10 @@ trait AKSRT_Auth_Service_Part_1a {
return ['success' => false, 'error' => __('验证入口无效或已过期,请重新发起验证流程。', 'aksrt')];
}
if (function_exists('aksrt_is_captcha_enabled_for') && aksrt_is_captcha_enabled_for('verify_email')) {
if (function_exists('aksrt_verify_captcha')) {
$captcha_result = aksrt_verify_captcha($post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
if (function_exists('aksrt_require_captcha')) {
$captcha_result = aksrt_require_captcha('verify_email', $post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
}
@@ -417,12 +411,10 @@ trait AKSRT_Auth_Service_Part_1a {
return ['success' => false, 'error' => __('该账号已完成邮箱验证,无需重复发送', 'aksrt')];
}
if (function_exists('aksrt_is_captcha_enabled_for') && aksrt_is_captcha_enabled_for('verify_email')) {
if (function_exists('aksrt_verify_captcha')) {
$captcha_result = aksrt_verify_captcha($post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
if (function_exists('aksrt_require_captcha')) {
$captcha_result = aksrt_require_captcha('verify_email', $post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
}
@@ -110,12 +110,10 @@ trait AKSRT_Auth_Service_Part_1b {
return ['success' => false, 'error' => __('安全验证失败,请刷新页面重试', 'aksrt')];
}
if (function_exists('aksrt_is_captcha_enabled_for') && aksrt_is_captcha_enabled_for('lostpassword')) {
if (function_exists('aksrt_verify_captcha')) {
$captcha_result = aksrt_verify_captcha($post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
if (function_exists('aksrt_require_captcha')) {
$captcha_result = aksrt_require_captcha('lostpassword', $post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
}
@@ -247,6 +245,13 @@ trait AKSRT_Auth_Service_Part_1b {
return ['success' => false, 'error' => __('密码至少 6 位', 'aksrt')];
}
if (function_exists('aksrt_require_captcha')) {
$captcha_result = aksrt_require_captcha('register', $post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
}
// 验证 SMS 验证码
if (class_exists('AKSRT_SMS')) {
$verify_result = AKSRT_SMS::get_instance()->verify_code($phone, $code);
@@ -321,6 +326,13 @@ trait AKSRT_Auth_Service_Part_1b {
return ['success' => false, 'error' => __('手机号格式不正确', 'aksrt')];
}
if (function_exists('aksrt_require_captcha')) {
$captcha_result = aksrt_require_captcha('login', $post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
}
$user = self::get_user_by_phone($phone);
if (!$user) {
return ['success' => false, 'error' => __('该手机号未注册', 'aksrt')];
@@ -359,6 +371,13 @@ trait AKSRT_Auth_Service_Part_1b {
return ['success' => false, 'error' => __('手机号格式不正确', 'aksrt')];
}
if (function_exists('aksrt_require_captcha')) {
$captcha_result = aksrt_require_captcha('login', $post);
if ($captcha_result !== true) {
return ['success' => false, 'error' => $captcha_result];
}
}
// 验证 SMS 验证码
if (class_exists('AKSRT_SMS')) {
$verify_result = AKSRT_SMS::get_instance()->verify_code($phone, $code);