Token导航 LogoToken导航TokenDH.com
开发敏感数据github未标认证来源可访问许可证需确认审计提醒

express-oauth2-jwt-bearerexpress oauth2 JWT bearer 安全

Agent Skill

用于辅助安全审计、权限检查、凭据风险、认证流程和常见漏洞排查。它适合让 Agent 梳理敏感配置、检查依赖风险、分析鉴权逻辑或生成安全复核清单。使用时不能把工具输出直接当最终结论,涉及密钥、令牌、用户数据或生产系统时,应先确认最小权限、脱敏方式和操作边界。

总安装

1,533

周安装

62

GitHub Stars

17

下载量

481
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:express-oauth2-jwt-bearer(express oauth2 JWT bearer 安全)
来源仓库:https://github.com/auth0/agent-skills
仓库路径:skills/express-oauth2-jwt-bearer
安装命令:
npx skills add https://github.com/auth0/agent-skills --skill express-oauth2-jwt-bearer
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/auth0/agent-skills --skill express-oauth2-jwt-bearer

简介

为 Auth0 JWT Bearer Token 提供 Express 中间件验证支持。

  • 自动处理令牌提取、签名校验、受众与签发者验证流程。
  • 遵循 RFC 6750 标准,减少手动解析 JWT 的安全隐患。
  • 需配合 Auth0 控制台获取正确的 audience 与 issuer 配置参数。
  • express-oauth2-jwt-bearer 属于开发类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Node OAuth2 JWT Bearer Integration

The express-oauth2-jwt-bearer package provides Express middleware for validating Auth0 JWT Bearer access tokens. It handles token extraction, signature verification, audience and issuer validation, and expiry checks per RFC 6750 — letting you focus on business logic rather than JWT parsing.

Agent instruction: Before providing SDK setup instructions, fetch the latest release version by running: ``bash gh api repos/auth0/node-oauth2-jwt-bearer/releases/latest --jq '.tag_name' ` Use the returned version in all package.json` dependency lines instead of any hardcoded version below.

Prerequisites

  • Node.js 18+ (20+ recommended; required for bootstrap script automation)
  • Express 4.x or 5.x
  • npm or yarn
  • An Auth0 account with a configured API (Resource Server)
  • Auth0 CLI (for automatic setup): npm install -g @auth0/auth0-cli

When NOT to Use

Use CaseRecommended Skill
Building a server-side web app with login UI (Express sessions)auth0-express
Building a Next.js app with server-side authauth0-nextjs
Building a React/Angular/Vue SPAauth0-react, auth0-angular, auth0-vue
Building a React Native or mobile appauth0-react-native, auth0-android, auth0-swift
ASP.NET Core Web APIauth0-aspnetcore-api
Go API with JWT middlewarego-jwt-middleware
Python API (Flask/FastAPI)auth0-api-python
Node.js API using the older express-jwt packageexpress-jwt

Quick Start Workflow

Agent instruction: Follow these steps to integrate express-oauth2-jwt-bearer into the user's Node.js API project. 1. Fetch latest version (see instruction above). 2. Install the SDK: npm install express-oauth2-jwt-bearer 3. Configure Auth0 — follow references/setup.md. If the user already provided their Auth0 Domain and API Audience in the prompt, use them directly — skip the bootstrap script and do NOT call AskUserQuestion to re-confirm. Otherwise, offer automatic setup via bootstrap script or manual setup. 4. Set up middleware — add to app.js or server.js: ` import {auth} from 'express-oauth2-jwt-bearer'; const checkJwt = auth({issuerBaseURL: https://${process.env.AUTH0_DOMAIN}, audience: process.env.AUTH0_AUDIENCE,}); app.use(checkJwt); // apply globally, or per-route 5. **Protect endpoints** — apply middleware globally or to specific routes: // Global protection app.use(checkJwt); // Or per-route app.get('/api/private', checkJwt, (req, res) => {res.json({sub: req.auth.payload.sub});}); 6. **Add RBAC** (optional) — use requiredScopes() or claimIncludes() for permission-based access: import {auth, requiredScopes, claimIncludes} from 'express-oauth2-jwt-bearer'; app.get('/api/messages', checkJwt, requiredScopes('read:messages'), (req, res) => {res.json({messages: []});}); **Important:** requiredScopes accepts a single argument — a space-separated string or an array. Do NOT pass multiple string arguments: requiredScopes('read:msg', 'write:msg') silently ignores everything after the first. Use requiredScopes('read:msg write:msg') or requiredScopes(['read:msg', 'write:msg']) instead. 7. **Verify the integration** — build and test: node server.js curl http://localhost:3000/api/private # should return 401 curl -H "Authorization: Bearer <token>" http://localhost:3000/api/private # should return 200 8. **Failcheck:** If the server fails to start or tokens are rejected unexpectedly, check references/api.md for common issues. After 5-6 failed iterations, use AskUserQuestion` to ask the user for more details about their environment.

Detailed Documentation

  • Setup Guide — Auth0 API registration,.env configuration, bootstrap script for automated setup, and secret management
  • Integration Patterns — Protected endpoints, RBAC with scopes and claims, DPoP, CORS setup, error handling, and testing with curl
  • API Reference & Testing — Full configuration options, claims reference, complete code example, testing checklist, and common issues

Common Mistakes

MistakeSymptomFix
Created an Application instead of an API in Auth0 DashboardToken validation fails; wrong audienceCreate a new API (Resource Server) in Auth0 Dashboard → APIs
Audience doesn't match API identifier exactly401 Unauthorized — "Audience mismatch"Copy the exact API Identifier string from Auth0 Dashboard → APIs
Domain includes https:// prefixError: Invalid URL at startupUse hostname only: your-tenant.us.auth0.com, not https://...
Checking scope claim instead of permissions for RBAC403 always returned or permissions ignoredUse requiredScopes() for scope-based RBAC; use claimIncludes('permissions', 'read:data') for Auth0 RBAC permission claims
CORS not configured before auth middlewarePreflight OPTIONS requests return 401Add cors() middleware before auth() in the middleware chain
.env file not loadedundefined for domain/audienceAdd import 'dotenv/config' at the top of the entry file
req.auth is undefinedTypeError: Cannot read properties of undefinedVerify checkJwt middleware runs before the handler

Related Skills

Quick Reference

Core Middleware

FunctionDescriptionReturns
auth(options?)JWT Bearer validation middlewareHandler — 401 if token invalid/missing
requiredScopes(scopes)Validates token has all required scopesHandler — 403 if scopes missing
scopeIncludesAny(scopes)Validates token has at least one scopeHandler — 403 if no match
claimEquals(claim, value)Validates a claim equals a valueHandler — 401 if mismatch
claimIncludes(claim,...values)Validates claim includes all valuesHandler — 401 if incomplete
claimCheck(fn, desc?)Custom claim validation functionHandler — 401 if fn returns false

Configuration Options

OptionTypeDescription
issuerBaseURLstringAuth0 domain with https:// (required unless using env vars)
audiencestringAPI Identifier from Auth0 Dashboard (required unless using env vars)
tokenSigningAlgstringSigning algorithm (default: RS256; use HS256 for symmetric)
authRequiredbooleanSet false to make authentication optional (default: true)
clockTolerancenumberClock skew tolerance in seconds (no default; undefined unless set)
dpopDPoPOptionsDPoP configuration (see integration.md)

Environment Variables

VariableDescription
ISSUER_BASE_URLAuth0 domain with https:// (auto-detected by SDK)
AUDIENCEAPI Identifier (auto-detected by SDK)

Request Object

After successful validation, req.auth contains:

req.auth.payload    // Decoded JWT payload (sub, iss, aud, exp, permissions, etc.)
req.auth.header     // JWT header (alg, typ, kid)
req.auth.token      // Raw JWT string

SDK Architecture

The node-oauth2-jwt-bearer monorepo contains three packages:

PackagePurpose
express-oauth2-jwt-bearerMain package. Express middleware for JWT Bearer validation. Published to npm.
access-token-jwtLow-level JWT verification utilities (used internally).
oauth2-bearerRFC 6750 Bearer token extraction (used internally).

In practice, you only install and import express-oauth2-jwt-bearer.

Auth Flow Comparison

Auth PatternSDKWhen to Use
JWT Bearer (stateless)express-oauth2-jwt-bearerAPIs called by SPAs, mobile apps, M2M clients
Session-based (stateful)@auth0/express-openid-connectWeb apps with login UI and server-side sessions

Testing Quick Reference

# Get test token from Auth0 Dashboard → APIs → your API → Test tab
# Copy the token, then:

# 1. Verify 401 on protected route (no token)
curl -v http://localhost:3000/api/private

# 2. Verify 200 with valid token
curl -H "Authorization: Bearer <paste-token-here>" http://localhost:3000/api/private

# 3. Verify 403 with valid token but missing scope
curl -H "Authorization: Bearer <paste-token-here>" http://localhost:3000/api/admin

# 4. Verify CORS preflight
curl -v -X OPTIONS http://localhost:3000/api/private \
  -H "Origin: http://localhost:5173" \
  -H "Access-Control-Request-Method: GET" \
  -H "Access-Control-Request-Headers: Authorization"

References

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.06%
按下载量换算173

Claude

27.15%
按下载量换算131

Cursor

17.99%
按下载量换算87

Gemini CLI

9.31%
按下载量换算45

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills