指南
浏览器 key
直接在网页里调用 Pikeway。把 key 限制在你的域名上,网关就只接受来自这些网站页面的请求,从前端代码里复制走的 key 在别处无法使用。
设置浏览器 key
单独创建一把 key
在 控制台 → API Key 为网页应用单独创建一把 key,不要复用服务端的 key。
添加你的站点
打开这把 key 的 站点 设置,填入网页所在的主机名:app.example.com;*.example.com 匹配任意子域名;开发时可填 localhost。只填主机名,不带协议、端口或路径,最多 50 条。
*.example.com 匹配子域名,但不包括 example.com 本身。如果应用也跑在根域名上,两条都要加。设置消费上限
同时给这把 key 设置 额度。任何人都可以通过你自己的页面制造调用,额度能限制这部分最多花多少钱。
在页面里调用
javascript
// In your web app. The key is visible to anyone who opens devtools, and that's fine:
// the gateway only accepts it from pages on your sites.
const PIKEWAY_BROWSER_KEY = 'pk-…';
const res = await fetch('https://gw.pikeway.ai/gw/dexscreener/latest/dex/search?q=WBTC', {
headers: { Authorization: `Bearer ${PIKEWAY_BROWSER_KEY}` },
});
console.log(res.headers.get('X-Pikeway-Cost'), await res.json());浏览器无法给 WebSocket 设置请求头,所以用 ?key= 传 key,网关转发前会去掉它。费用和调用 id 响应头可以在 JavaScript 里读取(已通过 CORS 暴露)。
校验方式
- 网关读取请求的
Origin头(没有时用Referer),把其中的主机名和你的列表比对。这两个头由浏览器自己设置,页面脚本无法修改。 - 两个头都没有的请求会被拒绝,而服务端、脚本和 curl 默认就是这样发请求的。浏览器 key 只能在浏览器里用。
- 被拒绝的请求返回
403 request origin not allowed for this API key,不会扣费。 - 同样的校验适用于通过
/gw/、/v1/run、AI 网关和 WebSocket 发起的付费调用。 - CORS 默认对所有来源开放,但提供者可以把自己的 API 限制在自己的域名上。如果浏览器拦下了某个 API 的响应,说明它不允许从其他网站调用,请改为从服务端调用。
bash
# The same key used from a server (no Origin / Referer):
curl "https://gw.pikeway.ai/gw/dexscreener/latest/dex/search?q=WBTC" -H "Authorization: Bearer pk-…"
# 403 {"error":"request origin not allowed for this API key"}来源校验能防止复制走的 key 在其他网站或服务器上被复用,但挡不住有人通过你自己的页面发起调用。所以请保留消费上限,只开放页面真正需要的能力。