@kaadon.com/cfapi
v1.0.0
Published
AES-256-GCM auto-decrypt client for Cloudflare API responses
Maintainers
Readme
@kaadon.com/cfapi
AES-256-GCM 自动解密的 Cloudflare API 客户端,零运行时依赖,支持浏览器和 Node.js 18+。
安装
npm install @kaadon.com/cfapi axios快速开始
import { CfApi } from '@kaadon.com/cfapi';
const api = await CfApi.create({
key: '你的64位十六进制密钥',
baseURL: 'https://your-api.example.com',
token: 'your-bearer-token',
});
const res = await api.get<{ ip: string; country: string }>('/api/verify');
console.log(res.data); // { ip: '1.2.3.4', country: 'CN' }API
CfApi.create(options)
异步工厂方法,创建并返回 CfApi 实例。
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| key | string | 是 | 256 位密钥的十六进制字符串(64 字符) |
| baseURL | string | 是 | API 基础地址 |
| token | string | 否 | Bearer Token,自动 SHA-256(token+YYYYMMDD UTC) 后发送 |
| axios | AxiosInstance | 否 | 自定义 axios 实例 |
| axiosConfig | AxiosRequestConfig | 否 | 传递给 axios.create 的额外配置 |
请求方法
api.get<T>(url, config?)
api.post<T>(url, body?, config?)
api.put<T>(url, body?, config?)
api.delete<T>(url, config?)所有方法返回 Promise<CfApiResponse<T>>,响应已自动解密。
其他方法
api.setToken('new-token') // 更新 Token
api.instance // 获取内部 axios 实例
api.decrypt<T>('base64字符串') // 直接解密数据使用自定义 Axios 实例
import axios from 'axios';
import { CfApi } from '@kaadon.com/cfapi';
const http = axios.create({ baseURL: 'https://api.example.com', timeout: 5000 });
const api = await CfApi.create({ key: '你的密钥', baseURL: '', axios: http });低级 API
import { decrypt, decryptResponse, isEncryptedResponse } from '@kaadon.com/cfapi';
const data = await decrypt('base64字符串', '64位十六进制密钥');
const result = await decryptResponse(responseBody, '64位十六进制密钥');
if (isEncryptedResponse(body)) { /* ... */ }环境要求
- 浏览器: 支持 Web Crypto API(所有现代浏览器)
- Node.js: >= 18
License
MIT
