@columenlabs/lumen-auth (英语)
路门为Cloudflare Access背后的工人办理的签入检查:在每一个请求,即"工人"中验证"工人"中的"象征性访问"标志,所以即使Access应用程序配置不当或请求到达了"工人"的另一条途径,一条路由仍然关闭. 无依赖关系: Web Crypto 和 fetch因此它运行在一个工人, Bun 或节点.
- 文档 : https://lumen.columenlabs.com/docs/ (中文(简体) )
- 对于代理人: https://lumen.columenlabs.com/llms.txt (中文(简体) )
- 资料来源: https://github.com/columenlabs/lumen (中文(简体) ) (单位:千美元)
packages/auth麻省理工学院.
安装
bun add @columenlabs/lumen-auth
把它固定在与其他卢门软件包相同的准确版本.
校验访问符
import { AccessVerifier, accessToken } from '@columenlabs/lumen-auth';
// One per isolate: the team's signing keys are fetched once and kept an hour.
const access = new AccessVerifier({
teamDomain: 'myteam.cloudflareaccess.com',
aud: [env.ACCESS_AUD], // one application's AUD tag, or several (one Worker, several hosts)
});
const who = await access.verify(accessToken(request));
if (!who) return new Response('Not found', { status: 404 });
who.email; // the person, when a person signed in
who.serviceToken; // the service token's client ID, when a service token signed in
who.sub; // Access's subject id
verify 返回时 null 对于缺失,变形,过期或签名错误的代币,是另一个应用程序的代币(aud)或另一支队伍(iss) (中文(简体) ). 只有RS256被接受. 它没有看到一个密钥 ID 再次获取密钥 .
| 导出 | |
|---|---|
AccessVerifier(config, fetch?, now?) | verify(token) → AccessIdentity 或者说 null。 。 。 . fetch 财务报告和审定财务报表 now 用于测试 |
AccessConfig | { teamDomain, aud } |
AccessIdentity | { sub, email?, serviceToken? } |
accessToken(request) | 请求是 Cf-Access-Jwt-Assertion,如果有的话 |
ACCESS_HEADER | 'cf-access-jwt-assertion' |
Who Access lets in stay Access's policy; 每个人可以做的都保持应用程序的自有. 此软件包只能证明请求是通过Access而来的.
版本数
0.x:任何未成年人可以断裂到1.0. 每次和鲁门合并 main 发布每个 Lumen 软件包的下一个补丁;参见 释放。 。 。 .