success([ 'data' => $this->identity_settings_response(IdentityAdmin::read()), ]); } public function update_identity_settings(\WP_REST_Request $request): \WP_REST_Response { $settings = IdentityAdmin::update($this->get_json_params($request)); return $this->success([ 'message' => __('身份认证服务商配置已保存', 'aksrt'), 'data' => $this->identity_settings_response($settings), ]); } public function test_identity_settings(\WP_REST_Request $request): \WP_REST_Response { $params = $this->get_json_params($request); $provider = sanitize_key((string) ($params['provider'] ?? '')); $result = IdentityAdmin::test($provider); if (empty($result['success'])) { return $this->error((string) ($result['message'] ?? __('配置检查失败', 'aksrt')), 422); } return $this->success([ 'message' => (string) $result['message'], 'data' => ['provider' => $provider, 'configured' => true], ]); } private function identity_settings_response(array $settings): array { $settings['callback_url'] = [ 'aliyun' => rest_url(self::API_NAMESPACE . '/identity/callback/aliyun'), 'tencent' => rest_url(self::API_NAMESPACE . '/identity/callback/tencent'), ]; return $settings; } }