feat(cloudflare): 改用 Account ID + API Token 创建管理隧道并发布 v1.6.8
CI / verify (push) Canceled after 0s

This commit is contained in:
2026-09-28 18:23:38 +08:00
parent 7acf13583b
commit 8f78aad19b
15 changed files with 308 additions and 237 deletions
+8 -7
View File
@@ -97,6 +97,7 @@ func (s *Store) SetRuntime(ctx context.Context, id int64, status, lastError stri
// settingsRow 是应用配置的原始行;TokenEnc 只在 Service 内部解密,不直接回给前端。
type settingsRow struct {
AccountID string
TokenEnc string
APITokenEnc string
Mirror string
@@ -104,30 +105,30 @@ type settingsRow struct {
}
func (s *Store) GetSettingsRaw(ctx context.Context) (settingsRow, error) {
var tokenEnc, apiTokenEnc, mirror, networkJSON string
var accountID, tokenEnc, apiTokenEnc, mirror, networkJSON string
err := s.db.QueryRowContext(ctx, `
SELECT COALESCE(default_token_enc, ''), COALESCE(api_token_enc, ''),
SELECT COALESCE(account_id, ''), COALESCE(default_token_enc, ''), COALESCE(api_token_enc, ''),
COALESCE(mirror, 'official'), COALESCE(network_json, '{}')
FROM cf_settings WHERE id = 1
`).Scan(&tokenEnc, &apiTokenEnc, &mirror, &networkJSON)
`).Scan(&accountID, &tokenEnc, &apiTokenEnc, &mirror, &networkJSON)
if errors.Is(err, sql.ErrNoRows) {
return settingsRow{Mirror: "official", Network: DefaultNetworkSettings()}, nil
}
if err != nil {
return settingsRow{}, err
}
row := settingsRow{TokenEnc: tokenEnc, APITokenEnc: apiTokenEnc, Mirror: mirror, Network: DefaultNetworkSettings()}
row := settingsRow{AccountID: accountID, TokenEnc: tokenEnc, APITokenEnc: apiTokenEnc, Mirror: mirror, Network: DefaultNetworkSettings()}
_ = json.Unmarshal([]byte(networkJSON), &row.Network)
return row, nil
}
func (s *Store) SaveSettings(ctx context.Context, tokenEnc, apiTokenEnc, mirror string, network NetworkSettings) error {
func (s *Store) SaveSettings(ctx context.Context, accountID, tokenEnc, apiTokenEnc, mirror string, network NetworkSettings) error {
networkJSON, _ := json.Marshal(network)
_, err := s.db.ExecContext(ctx, `
UPDATE cf_settings
SET default_token_enc = ?, api_token_enc = ?, mirror = ?, network_json = ?, updated_at = datetime('now')
SET account_id = ?, default_token_enc = ?, api_token_enc = ?, mirror = ?, network_json = ?, updated_at = datetime('now')
WHERE id = 1
`, tokenEnc, apiTokenEnc, mirror, string(networkJSON))
`, accountID, tokenEnc, apiTokenEnc, mirror, string(networkJSON))
return err
}