類別:MCPAuth
mcp-auth 函式庫的主要類別,提供在 MCP 伺服器中建立路由器及實用的驗證 (Authentication) 與授權 (Authorization) 處理器方法。
參見
更多有關此函式庫及其用法,請參閱 MCP Auth。
範例
與遠端 OIDC 提供者整合的範例:
import express from 'express';
import { MCPAuth, fetchServerConfig } from 'mcp-auth';
const app = express();
const mcpAuth = new MCPAuth({
server: await fetchServerConfig(
'https://auth.logto.io/oidc',
{ type: 'oidc' }
),
});
// 掛載路由器以處理 OAuth 2.0 授權伺服器中繼資料
app.use(mcpAuth.delegatedRouter());
// 在 MCP 路由上使用 Bearer 驗證 (Authentication) 處理器
app.get(
'/mcp',
mcpAuth.bearerAuth('jwt', { requiredScopes: ['read', 'write'] }),
(req, res) => {
console.log('Auth info:', req.auth);
// 在此處理 MCP 請求
},
);
// 在 MCP 回呼中使用驗證 (Authentication) 資訊
server.tool(
'add',
{ a: z.number(), b: z.number() },
async ({ a, b }, { authInfo }) => {
console.log('Auth Info:', authInfo);
// ...
},
);
建構子
建構子
new MCPAuth(config: MCPAuthConfig): MCPAuth;
參數
config
回傳值
MCPAuth
屬性
config
readonly config: MCPAuthConfig;
方法
bearerAuth()
呼叫簽章
bearerAuth(verifyAccessToken: VerifyAccessTokenFunction, config?: Omit<BearerAuthConfig, "verifyAccessToken" | "issuer">): RequestHandler;
建立一個 Bearer 驗證 (Authentication) 處理器(Express 中介軟體),用於驗證請求 Authorization
標頭中的存取權杖 (Access token)。
參數
verifyAccessToken
一個驗證存取權杖 (Access token) 的函式。應接受字串型態的存取權杖,並回傳一個 promise(或值),解析為驗證結果。
參見
VerifyAccessTokenFunction 以瞭解 verifyAccessToken
函式的型別定義。
config?
Omit
<BearerAuthConfig
, "verifyAccessToken"
| "issuer"
>
Bearer 驗證 (Authentication) 處理器的選用設定。
參見
BearerAuthConfig 以瞭解可用的設定選項(不含 verifyAccessToken
與 issuer
)。
回傳值
RequestHandler
一個 Express 中介軟體函式,會驗證存取權杖 (Access token) 並將驗證結果加入請求物件(req.auth
)。
參見
handleBearerAuth 以瞭解實作細節與 req.auth
(AuthInfo
)物件的擴充型別。
呼叫簽章
bearerAuth(mode: "jwt", config?: Omit<BearerAuthConfig, "verifyAccessToken" | "issuer"> & BearerAuthJwtConfig): RequestHandler;
建立一個 Bearer 驗證 (Authentication) 處理器(Express 中介軟體),使用預設的驗證模式來驗證請求 Authorization
標頭中的存取權杖 (Access token)。
在 'jwt'
模式下,處理器會使用授權伺服器 JWKS URI 的 JWK Set 建立 JWT 驗證函式。
參數
mode
"jwt"
存取權杖 (Access token) 的驗證模式。目前僅支援 'jwt'。
參見
VerifyAccessTokenMode 以瞭解可用模式。
config?
Omit
<BearerAuthConfig
, "verifyAccessToken"
| "issuer"
> & BearerAuthJwtConfig
Bearer 驗證 (Authentication) 處理器的選用設定,包含 JWT 驗證選項與遠端 JWK set 選項。
參見
- BearerAuthJwtConfig 以瞭解 JWT 驗證可用設定選項。
- BearerAuthConfig 以瞭解可用設定選項(不含
verifyAccessToken
與issuer
)。
回傳值
RequestHandler
一個 Express 中介軟體函式,會驗證存取權杖 (Access token) 並將驗證結果加入請求物件(req.auth
)。
參見
handleBearerAuth 以瞭解實作細節與 req.auth
(AuthInfo
)物件的擴充型別。
例外拋出
當使用 'jwt'
模式且伺服器中繼資料未提供 JWKS URI 時會拋出例外。
delegatedRouter()
delegatedRouter(): Router;
建立一個代理路由器,服務 OAuth 2.0 授權伺服器中繼資料端點
(/.well-known/oauth-authorization-server
),並提供給此實例的中繼資料。
回傳值
Router
一個路由器,服務 OAuth 2.0 授權伺服器中繼資料端點,並提供給此實例的中繼資料。
範例
import express from 'express';
import { MCPAuth } from 'mcp-auth';
const app = express();
const mcpAuth: MCPAuth; // 假設已初始化
app.use(mcpAuth.delegatedRouter());