停止构建后端,仅为隐藏一个 API Key
Source: Dev.to
你正在构建下一个大型 AI 包装器或时尚的单页应用(SPA)。你已经有了 OpenAI 密钥,前端已经用 React/Vue/Svelte 完成,即将上线。
但等等。🛑
你不能把 sk-proj-... 放在客户端代码里。大家都知道这点。
于是你必须:
- 启动一个 Node/Express 服务器(或 Next.js API 路由)。
- 配置 CORS。
- 部署它(Vercel/Heroku/EC2)。
- 维护它。
仅仅为了发一次 API 请求就付费?这感觉太夸张了。
“Backend for Frontend” 的问题
对于简单的集成(AI 代理、天气应用、支付链接),构建专门的后端服务会带来不必要的摩擦。你花更多时间在配置 IAM 角色和中间件上,而不是在真正构建产品。
暴露密钥不是选项。机器人会瞬间抓取 GitHub 和公开仓库。你的 $500 额度可能在几秒钟内就用光。💸
解决方案:安全代理层
如果可以保持前端代码干净,同时仍然保护密钥怎么办?
这就是我创建 SaltingIO 的原因。它充当前端与 API 提供商之间的安全“盐层”。
工作原理
- 在 Salting 仪表盘中粘贴你的原始 API 密钥(OpenAI、Anthropic、Stripe 等),我们会立即对其加密。🔒
- 获取桥接 URL。我们会给你一个唯一的端点,例如
https://api.salting.io/r/your-bridge-id。 - 上线。在前端的
fetch()调用中使用该 URL。无需后端。
示例:在 React 中安全调用 OpenAI
之前(不安全 ❌)
const response = await fetch('https://api.openai.com/v1/chat/completions', {
headers: {
'Authorization': 'Bearer sk-proj-12345...' // EXPOSED!
}
});
之后(安全 ✅)
const response = await fetch('https://api.salting.io/r/your-bridge-id', {
method: 'POST',
body: JSON.stringify({ model: 'gpt-4', messages: [...] })
});
为什么这对独立开发者很重要
- 速度 – 几分钟即可上线,而不是数小时。
- 安全 – 你的密钥永远不会离开我们的加密保险库。
- 控制 – 为每个用户设置速率限制(例如,“每个 IP 每天最多 10 次请求”),无需编写任何 Redis 代码即可防止滥用。
- 分析 – 精准查看谁在使用你的 API 以及使用量。
我之所以创建它,是因为我已经厌倦了为每个副项目都搭建 lambda。如果你在公开构建或快速上线,试试看吧。
👉 使用 SaltingIO 保护你的 API 密钥 – Stop Building Backends for Simple API Calls