编辑:cloud-auth.trait.php
<?php /** * Cloud auth trait * * @package LiteSpeed * @since 7.8 */ namespace LiteSpeed; defined( 'WPINC' ) || exit(); /** * Trait Cloud_Auth * * Handles QUIC.cloud activation, authentication, and CDN setup. */ trait Cloud_Auth { use Cloud_Auth_Callback; use Cloud_Auth_IP; /** * Init QC setup preparation * * @since 7.0 */ public function init_qc_prepare() { if ( empty( $this->_summary['sk_b64'] ) ) { $keypair = sodium_crypto_sign_keypair(); $pk = base64_encode( sodium_crypto_sign_publickey( $keypair ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode $sk = base64_encode( sodium_crypto_sign_secretkey( $keypair ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode $this->_summary['pk_b64'] = $pk; $this->_summary['sk_b64'] = $sk; $this->save_summary(); // ATM `qc_activated` = null return true; } return false; } /** * Init QC setup * * @since 7.0 */ public function init_qc() { $this->init_qc_prepare(); $ref = $this->_get_ref_url(); // WPAPI REST echo dryrun $echobox = self::post( self::API_REST_ECHO, false, 60 ); if ( false === $echobox ) { self::debugErr( 'REST Echo Failed!' ); $msg = __( "QUIC.cloud's access to your WP REST API seems to be blocked.", 'litespeed-cache' ); Admin_Display::error( $msg ); wp_safe_redirect( $ref ); exit; } self::debug( 'echo succeeded' ); // Load separate thread echoed data from storage if ( empty( $echobox['wpapi_ts'] ) || empty( $echobox['wpapi_signature_b64'] ) ) { Admin_Display::error( __( 'Failed to get echo data from WPAPI', 'litespeed-cache' ) ); wp_safe_redirect( $ref ); exit; } $data = [ 'wp_pk_b64' => $this->_summary['pk_b64'], 'wpapi_ts' => $echobox['wpapi_ts'], 'wpapi_signature_b64' => $echobox['wpapi_signature_b64'], ]; $server_ip = $this->conf( self::O_SERVER_IP ); if ( $server_ip ) { $data['server_ip'] = $server_ip; } // Activation redirect $param = [ 'site_url' => site_url(), 'ver' => Core::VER, 'data' => $data, 'ref' => $ref, ]; wp_safe_redirect( $this->_cloud_server_dash . '/' . self::SVC_U_ACTIVATE . '?data=' . rawurlencode( Utility::arr2str( $param ) ) ); exit; } /** * Decide the ref * * @param string|false $ref Ref slug. * @return string */ private function _get_ref_url( $ref = false ) { $link = 'admin.php?page=litespeed'; if ( 'cdn' === $ref ) { $link = 'admin.php?page=litespeed-cdn'; } if ( 'online' === $ref ) { $link = 'admin.php?page=litespeed-general'; } // phpcs:ignore WordPress.Security.NonceVerification.Recommended $ref_get = ! empty( $_GET['ref'] ) ? sanitize_text_field( wp_unslash( $_GET['ref'] ) ) : ''; if ( $ref_get && 'cdn' === $ref_get ) { $link = 'admin.php?page=litespeed-cdn'; } if ( $ref_get && 'online' === $ref_get ) { $link = 'admin.php?page=litespeed-general'; } return get_admin_url( null, $link ); } /** * Init QC setup (CLI) * * @since 7.0 */ public function init_qc_cli() { $this->init_qc_prepare(); $server_ip = $this->conf( self::O_SERVER_IP ); if ( ! $server_ip ) { self::debugErr( 'Server IP needs to be set first!' ); $msg = sprintf( __( 'You need to set the %1$s first. Please use the command %2$s to set.', 'litespeed-cache' ), '`' . __( 'Server IP', 'litespeed-cache' ) . '`', '`wp litespeed-option set server_ip __your_ip_value__`' ); Admin_Display::error( $msg ); return; } // WPAPI REST echo dryrun $echobox = self::post( self::API_REST_ECHO, false, 60 ); if ( false === $echobox ) { self::debugErr( 'REST Echo Failed!' ); $msg = __( "QUIC.cloud's access to your WP REST API seems to be blocked.", 'litespeed-cache' ); Admin_Display::error( $msg ); return; } self::debug( 'echo succeeded' ); // Load separate thread echoed data from storage if ( empty( $echobox['wpapi_ts'] ) || empty( $echobox['wpapi_signature_b64'] ) ) { self::debug( 'Resp: ', $echobox ); Admin_Display::error( __( 'Failed to get echo data from WPAPI', 'litespeed-cache' ) ); return; } $data = [ 'wp_pk_b64' => $this->_summary['pk_b64'], 'wpapi_ts' => $echobox['wpapi_ts'], 'wpapi_signature_b64' => $echobox['wpapi_signature_b64'], 'server_ip' => $server_ip, ]; $res = $this->post( self::SVC_D_ACTIVATE, $data ); return $res; } /** * Init QC CDN setup (CLI) * * @since 7.0 * * @param string $method Method. * @param string|bool $cert Cert path. * @param string|bool $key Key path. * @param string|bool $cf_token Cloudflare token. */ public function init_qc_cdn_cli( $method, $cert = false, $key = false, $cf_token = false ) { if ( ! $this->activated() ) { Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) ); return; } $server_ip = $this->conf( self::O_SERVER_IP ); if ( ! $server_ip ) { self::debugErr( 'Server IP needs to be set first!' ); $msg = sprintf( __( 'You need to set the %1$s first. Please use the command %2$s to set.', 'litespeed-cache' ), '`' . __( 'Server IP', 'litespeed-cache' ) . '`', '`wp litespeed-option set server_ip __your_ip_value__`' ); Admin_Display::error( $msg ); return; } if ( $cert ) { if ( ! file_exists( $cert ) || ! file_exists( $key ) ) { Admin_Display::error( __( 'Cert or key file does not exist.', 'litespeed-cache' ) ); return; } } $data = [ 'method' => $method, 'server_ip' => $server_ip, ]; if ( $cert ) { $data['cert'] = File::read( $cert ); $data['key'] = File::read( $key ); } if ( $cf_token ) { $data['cf_token'] = $cf_token; } $res = $this->post( self::SVC_D_ENABLE_CDN, $data ); return $res; } /** * Link to QC setup * * @since 7.0 */ public function link_qc() { if ( ! $this->activated() ) { Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) ); return; } $data = [ 'wp_ts' => time(), ]; $data['wp_signature_b64'] = $this->_sign_b64( $data['wp_ts'] ); // Activation redirect $param = [ 'site_url' => site_url(), 'ver' => Core::VER, 'data' => $data, 'ref' => $this->_get_ref_url(), ]; wp_safe_redirect( $this->_cloud_server_dash . '/' . self::SVC_U_LINK . '?data=' . rawurlencode( Utility::arr2str( $param ) ) ); exit; } /** * Show QC Account CDN status * * @since 7.0 */ public function cdn_status_cli() { if ( ! $this->activated() ) { Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) ); return; } $data = []; $res = $this->post( self::SVC_D_STATUS_CDN_CLI, $data ); return $res; } /** * Link to QC Account for CLI * * @since 7.0 * * @param string $email Account email. * @param string $key API key. */ public function link_qc_cli( $email, $key ) { if ( ! $this->activated() ) { Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) ); return; } $data = [ 'qc_acct_email' => $email, 'qc_acct_apikey'=> $key, ]; $res = $this->post( self::SVC_D_LINK, $data ); return $res; } /** * API link parsed call to QC * * @since 7.0 * * @param string $action2 Action slug. */ public function api_link_call( $action2 ) { if ( ! $this->activated() ) { Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) ); return; } $data = [ 'action2' => $action2, ]; $res = $this->post( self::SVC_D_API, $data ); self::debug( 'API link call result: ', $res ); } /** * Enable QC CDN * * @since 7.0 */ public function enable_cdn() { if ( ! $this->activated() ) { Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) ); return; } $data = [ 'wp_ts' => time(), ]; $data['wp_signature_b64'] = $this->_sign_b64( $data['wp_ts'] ); // Activation redirect $param = [ 'site_url' => site_url(), 'ver' => Core::VER, 'data' => $data, 'ref' => $this->_get_ref_url(), ]; wp_safe_redirect( $this->_cloud_server_dash . '/' . self::SVC_U_ENABLE_CDN . '?data=' . rawurlencode( Utility::arr2str( $param ) ) ); exit; } /** * Reset QC setup * * @since 7.0 */ public function reset_qc() { unset( $this->_summary['pk_b64'] ); unset( $this->_summary['sk_b64'] ); unset( $this->_summary['qc_activated'] ); if ( ! empty( $this->_summary['partner'] ) ) { unset( $this->_summary['partner'] ); } $this->save_summary(); self::debug( 'Clear local QC activation.' ); $this->clear_cloud(); Admin_Display::success( sprintf( __( 'Reset %s activation successfully.', 'litespeed-cache' ), 'QUIC.cloud' ) ); wp_safe_redirect( $this->_get_ref_url() ); exit; } /** * Check if activated QUIC.cloud service or not * * @since 7.0 * @access public */ public function activated() { return ! empty( $this->_summary['sk_b64'] ) && ! empty( $this->_summary['qc_activated'] ); } /** * Show my.qc quick link to the domain page * * @return string */ public function qc_link() { $data = [ 'site_url' => site_url(), 'ver' => LSCWP_V, 'ref' => $this->_get_ref_url(), ]; return $this->_cloud_server_dash . '/u/wp3/manage?data=' . rawurlencode( Utility::arr2str( $data ) ); // . (!empty($this->_summary['is_linked']) ? '?wplogin=1' : ''); } }
保存文件
位置:
home
/
fembzvrs
/
zimeza.com
/
wp-content
/
plugins
/
litespeed-cache
/
src
批量上传
创建
创建
批量权限
批量删除
名称
权限
大小
修改时间
操作
↑ 返回上级
-
-
-
-
cdn
drwxr-xr-x
-
2026-05-12 00:07
权限
删除
重命名
data_structure
drwxr-xr-x
-
2026-05-12 00:07
权限
删除
重命名
activation.cls.php
-rw-r--r--
17.31 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
admin-display.cls.php
-rw-r--r--
48.47 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
admin-settings.cls.php
-rw-r--r--
11.12 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
avatar.cls.php
-rw-r--r--
8.65 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
base.cls.php
-rw-r--r--
37.66 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
cdn.cls.php
-rw-r--r--
15.92 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
cloud-auth-ip.trait.php
-rw-r--r--
4.33 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
cloud-auth.trait.php
-rw-r--r--
9.38 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
cloud-misc.trait.php
-rw-r--r--
10.32 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
cloud-request.trait.php
-rw-r--r--
19.68 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
conf.cls.php
-rw-r--r--
19.53 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
control.cls.php
-rw-r--r--
24.35 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
core.cls.php
-rw-r--r--
20.97 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
crawler-map.cls.php
-rw-r--r--
19.41 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
crawler.cls.php
-rw-r--r--
44.72 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
data.upgrade.func.php
-rw-r--r--
5.72 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
db-optm.cls.php
-rw-r--r--
15.35 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
debug2.cls.php
-rw-r--r--
18.4 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
doc.cls.php
-rw-r--r--
5.45 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
esi.cls.php
-rw-r--r--
27.18 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
file.cls.php
-rw-r--r--
10.57 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
guest.cls.php
-rw-r--r--
2.75 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
gui.cls.php
-rw-r--r--
36.57 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
health.cls.php
-rw-r--r--
2.83 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
htaccess.cls.php
-rw-r--r--
29.81 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
img-optm-manage.trait.php
-rw-r--r--
30.85 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
img-optm-pull.trait.php
-rw-r--r--
22.1 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
img-optm-send.trait.php
-rw-r--r--
21.9 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
img-optm.cls.php
-rw-r--r--
5.26 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
import.cls.php
-rw-r--r--
4.29 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
import.preset.cls.php
-rw-r--r--
5.5 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
lang.cls.php
-rw-r--r--
17.02 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
localization.cls.php
-rw-r--r--
4.03 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
media.cls.php
-rw-r--r--
44.08 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
metabox.cls.php
-rw-r--r--
5.29 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
object-cache-wp.cls.php
-rw-r--r--
18.82 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
object-cache.cls.php
-rw-r--r--
20.95 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
placeholder.cls.php
-rw-r--r--
17.93 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
purge.cls.php
-rw-r--r--
34.41 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
report.cls.php
-rw-r--r--
6.12 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
rest.cls.php
-rw-r--r--
9.08 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
root.cls.php
-rw-r--r--
14.29 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
router.cls.php
-rw-r--r--
20.76 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
str.cls.php
-rw-r--r--
3.08 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
tag.cls.php
-rw-r--r--
9.26 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
task.cls.php
-rw-r--r--
7.05 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
tool.cls.php
-rw-r--r--
4.17 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
ucss.cls.php
-rw-r--r--
16.35 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
utility.cls.php
-rw-r--r--
26.01 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
vary.cls.php
-rw-r--r--
21.33 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名
vpi.cls.php
-rw-r--r--
9.38 KB
2026-04-01 20:54
编辑
下载
权限
删除
重命名