git-agent-swarm/auth0-jwt-api-demo
GitHub: git-agent-swarm/auth0-jwt-api-demo
一个仅用 Node.js 内置模块实现的轻量级 Auth0 JWT API 验证演示,展示如何不依赖第三方库完成 RS256 JWT 的结构、签名与 scope 校验。
Stars: 0 | Forks: 0
# Auth0 JWT API 演示
这是一个依赖极轻的 Node.js 概念验证,展示了 Kobey Dev Services 如何使用 Auth0 签发的 RS256 JWT 来保护 API 路由。
本仓库不会连接到 Kobey 的 Auth0 租户,也不包含租户密钥。它是一个纯净的实现模式,并通过可自行生成 RSA 密钥对的离线测试进行验证。
## 展示内容
- 验证 JWT 结构、`alg`、`kid`、签发方、受众、时间声明、签名以及必需的 scope。
- 当配置了有效的 `AUTH0_JWKS_URI` 时,会获取并缓存 JWKS 文档。
- 支持为测试进行依赖注入,从而使验证逻辑能够离线运行。
- 包含一个微型 HTTP API,带有一个公开的健康检查路由和一个受保护的路由。
- 仅使用 Node 内置模块:`http`、`crypto` 和 `node:test`。
## 快速开始
```
npm test
```
可选的本地服务器:
```
cp .env.example .env
# 填充 AUTH0_ISSUER, AUTH0_AUDIENCE, AUTH0_JWKS_URI
npm start
```
路由:
- `GET /health` 返回公开的状态检查。
- `GET /api/private` 需要 `Authorization: Bearer ` 以及 `read:messages` scope。
## 为什么这很有用
小型企业和初创公司通常会有一个内部 API,在进行更大规模的应用程序开发之前,需要进行简单的安全加固。该项目展示了核心的验证边界,而无需将其隐藏在框架或付费服务中。
## 限制与规范
- JWT 验证不需要 Auth0 client secret。
- 不使用租户 cookie、浏览器会话或 dashboard token。
- 不提交任何密钥。
- 测试不会调用 Auth0。
- 获取线上 JWKS 是可选的,并受环境变量控制。
## 公开验证背景
由 Kobey Dev Services 构建,作为身份/API 安全验证。
- 作品集:https://kobeydev.com
- GitHub 组织:https://github.com/git-agent-swarm
- Google Developer profile:https://me.developers.google.com/u/116492041557080639666
## 许可证
MIT。详见 `LICENSE`。
标签:API网关, Auth0, GNU通用公共许可证, JWT, MITM代理, Node.js, Syscall, Web开发, 自定义脚本