@aglyn/shared-util-http

中文文档
1.18.0发布于 2026/11/07Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 1.8万

获取 API 和 Next.js 请求处理器的小型 HTTP 帮助器: CORS 、 请求头、 ID- token cookie、 同源重定向检查、 URL 方案允许列表和认证 fetch它主要是Aglyn大包(QQAglyn/agl)的附属物

中文使用文档
文档目录5 节
  1. 安装
  2. 里面有什么东西
  3. 使用量
  4. 怎样才合适
  5. 许可证

@aglyn/ shared- util- http

获取 API 和 Next.js 请求处理器的小型 HTTP 帮助器: CORS 、 请求头、 ID- token cookie、 同源重定向检查、 URL 方案允许列表和认证 fetch它主要是Aglyn大型包件的附属物(Aglyn包件)@aglyn/aglyn,插件,租户运行时间),可以自行使用.

从Aglyn monorepo出版到npm. 随后的版本 语义版本。 。 。 .

安装

npm install @aglyn/shared-util-http

同伴依赖 : next (单位:千美元)16.3.3),可选. 使用取 Next.js 对象的助手(NextRequest, (中文(简体) ), NextResponse, (中文(简体) ), NextApiRequest比如饼干帮手 下面的子路径模块只使用网络标准.

里面有什么东西

从软件包根 :

  • 科斯特尔: corsHandleResponse(req, res, options?) 财务报告和审定财务报表 corsBuildResponseHandler(options?),可重复使用的配置。 逐项拒绝:没有 origin 选项. credentials 从不与 * 源代码。 飞行前 OPTIONS 除非 preflightContinue 已经设定。 下层部件 : getOriginHeaders, (中文(简体) ), getOriginHeadersFromRequest, (中文(简体) ), getAllowedHeaders, (中文(简体) ), isOriginAllowed。 。 。 .
  • getRequestHeader(request, name) - 阅读一个标题 从任何一个获取 Request 或一个 NextApiRequest。 。 。 .
  • getAbsoluteUrl(path, request?) - 从 host 页眉( 服务器) 或 window.location (浏览器).
  • cookieGetUserIdToken(request) 编号 : cookieSetUserIdToken(request, response, token, options?) - 读和写用户 ID -token cookie, httpOnly 默认.
  • 类型 : CorsOptions, (中文(简体) ), StaticOrigin, (中文(简体) ), OriginFn。 。 。 .

仅通过子路径(不从根再出):

  • @aglyn/shared-util-http/safe-redirect - 说吧 isSameOriginPath(candidate) 财务报告和审定财务报表 safeSameOriginPath(candidate, fallback = '/')。它们不匹配字符串的图案,而是用URL解析器与探针源进行解析,只有在源头不变的情况下才接受,源头捕获 //host, (中文(简体) ), /\host,以及标签或新线的花招.
  • @aglyn/shared-util-http/safe-url-scheme - 说吧 hasSafeLinkScheme(value) (单位:千美元)http, (中文(简体) ), https, (中文(简体) ), mailto, (中文(简体) ), tel, (中文(简体) ), sms,或没有计划)和 hasSafeMediaScheme(value) (单位:千美元)http, (中文(简体) ), https,或者没有计划。 他们只检查方案;之后你仍须从值中逃入属性中.
  • @aglyn/shared-util-http/bounded-await - 说吧 boundedAwait(work, ms, fallback, label) 财务报告和审定财务报表 createSettledValueCache()。第一个答案是 work'结果,或与 fallback 一次 ms 已经通过,使用实时计时器,而不是信任中止信号; work 可能是一个函数 AbortSignal 在截止日期终止。 获胜的最后期限写一个结构化 console.warn 每个标签一分钟。 第二个是 TTL 缓存,它持有已结算的值并拒绝承诺,有一个 readThrough(key, load, ttlFor) 只能储存一次 load 已经解决.
  • @aglyn/shared-util-http/authorized-token - 说吧 resolveIdToken(user, options?), (中文(简体) ), authorizedFetch(user, input, init?, options?), (中文(简体) ), describeCallFailure(error, fallback), (中文(简体) ), AuthorizationUnavailableError, (中文(简体) ), ID_TOKEN_TIMEOUT_MS。 。 。 . user 任何与一个 getIdToken() 方法。 等待的标志有期限, 当没有标志的时候 authorizedFetch 什么都不给,我下定决心 401- 有原因的形状反应.

使用量

import { corsBuildResponseHandler } from '@aglyn/shared-util-http'
import { safeSameOriginPath } from '@aglyn/shared-util-http/safe-redirect'

const cors = corsBuildResponseHandler({
  origin: ['https://app.example.com'],
  credentials: true,
})

export async function GET(req: Request) {
  return cors(req, Response.json({ ok: true }))
}

// Anything that would leave the origin becomes '/'.
const next = safeSameOriginPath(new URL(location.href).searchParams.get('next'))

怎样才合适

A 类 shared 软件包:通用,对Aglyn的模型一无所知。 共享软件包只能导入其他共享软件包; 此软件包取决于 @aglyn/shared-data-enums (HTTP状态代码和饼干键). @aglyn/shared-util-next, (中文(简体) ), @aglyn/shared-util-rest-api, (中文(简体) ), @aglyn/shared-util-email, (中文(简体) ), @aglyn/aglyn,租户运行时间包和大多数插件都依赖于它.

许可证

阿帕奇2.0 (英语). 资料来源: https://github.com/aglyn/aglyn/tree/main/libs/shared/util/http. 中国植物物种信息数据库

版本与发布记录

@aglyn/shared-util-http 共发布 152 个版本,首次发布于 2026/09/21;过去 12 个月发布了 152 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.18.0latest2026/11/07今天
1.17.02026/11/07今天
1.16.02026/11/07今天
1.15.22026/11/061 天前
1.15.12026/11/061 天前
1.15.02026/11/061 天前

其他发布通道:beta → 1.0.0-beta.296。

关于 @aglyn/shared-util-http 的常见问题

@aglyn/shared-util-http 是什么?

获取 API 和 Next.js 请求处理器的小型 HTTP 帮助器: CORS 、 请求头、 ID- token cookie、 同源重定向检查、 URL 方案允许列表和认证 fetch它主要是Aglyn大包(QQAglyn/agl)的附属物

如何安装 @aglyn/shared-util-http?

在项目目录运行 npm install @aglyn/shared-util-http,或使用 pnpm add / yarn add / bun add。

@aglyn/shared-util-http 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aglyn/shared-util-http 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aglyn/shared-util-http 可以商用吗?

@aglyn/shared-util-http 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aglyn/shared-util-http 的下载量有多少?

根据 npm 官方下载统计,@aglyn/shared-util-http 在 2026/10/05 – 2026/11/03 这 30 天内被下载 17,625 次,日均约 588 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aglyn/shared-util-http 还在维护吗?

最新版本 1.18.0 发布于 2026/11/07(今天);至今共发布 152 个版本,其中过去 12 个月发布了 152 个;首次发布于 2026/09/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。