@arcjet/decorate
弧喷 用于装饰信息答复的公用事业.
这是什么?
这个工具可以让你根据Arcjet的决定 来设计反应. 它目前支持实验性速率限制头.
我什么时候用这个?
如果您使用速率限制规则并想要设置, 您可以使用此软件包
实验 RateLimit-Policy 财务报告和审定财务报表 RateLimit 头.
见 PrateLimit HTTP 标题字段 打开 ietf.org 页:1
更多的资讯.
安装
这套方案只是无害环境管理. 在 Node.js 用 npm 安装 :
npm install @arcjet/decorate
使用
import http from "node:http";
import { setRateLimitHeaders } from "@arcjet/decorate";
import arcjet, { shield } from "@arcjet/node";
// Get your Arcjet key at <https://app.arcjet.com>.
// Set it as an environment variable instead of hard coding it.
const arcjetKey = process.env.ARCJET_KEY;
if (!arcjetKey) {
throw new Error("Cannot find `ARCJET_KEY` environment variable");
}
const aj = arcjet({
key: arcjetKey,
rules: [
// Shield protects your app from common attacks.
// Use `DRY_RUN` instead of `LIVE` to only log.
shield({ mode: "LIVE" }),
],
});
const server = http.createServer(async function (
request: http.IncomingMessage,
response: http.ServerResponse,
) {
const decision = await aj.protect(request);
setRateLimitHeaders(response, decision);
if (decision.isDenied()) {
response.writeHead(403, { "Content-Type": "application/json" });
response.end(JSON.stringify({ message: "Forbidden" }));
return;
}
response.writeHead(200, { "Content-Type": "application/json" });
response.end(JSON.stringify({ message: "Hello world" }));
});
server.listen(8000);
API 密码
此软件包导出标识符
setRateLimitHeaders。 。 。 .
没有默认导出 .
此套件导出 类型脚本 类型
ArcjetCanDecorate。 。 。 .
ArcjetCanDecorate
此类型代表了您可以用速率限制头来装饰的值.
它可以是任何看起来 Headers (图),
OutgoingMessage (节点.js),或 Response (相会.
类型
type ArcjetCanDecorate = HeaderLike | OutgoingMessageLike | ResponseLike;
setRateLimitHeaders(value, decision)
根据Arcjet的决定,用限速头来装饰一个响应.
它设置 RateLimit-Policy 财务报告和审定财务报表 RateLimit 符合
费率限制字段
HTTP 密码
规格草案.
参数
value(单位:千美元)ArcjetCanDecorate(中文(简体) ) ——反应或信头反对装饰decision(单位:千美元)ArcjetDecision(中文(简体) ) - 决定从protect()
回返
无undefined) (中文(简体) ).