MastraJwtAuth
MastraJwtAuth
クラスは、JSON Web Tokens(JWT)を使用してMastraの軽量な認証メカニズムを提供します。共有シークレットに基づいて受信リクエストを検証し、experimental_auth
オプションを使用してMastraサーバーと統合します。
インストール
MastraJwtAuth
クラスを使用するには、まず@mastra/auth
パッケージをインストールしてください。
npm install @mastra/auth@latest
使用例
src/mastra/index.ts
import { Mastra } from "@mastra/core/mastra";
import { MastraJwtAuth } from '@mastra/auth';
export const mastra = new Mastra({
// ..
server: {
experimental_auth: new MastraJwtAuth({
secret: process.env.MASTRA_JWT_SECRET
}),
},
});
利用可能なすべての設定オプションについては、MastraJwtAuth APIリファレンスを参照してください。
MastraClient
の設定
experimental_auth
が有効になっている場合、MastraClient
で行われるすべてのリクエストは、Authorization
ヘッダーに有効なJWTを含める必要があります:
lib/mastra/mastra-client.ts
import { MastraClient } from "@mastra/client-js";
export const mastraClient = new MastraClient({
baseUrl: "https://<mastra-api-url>",
headers: {
Authorization: `Bearer ${process.env.MASTRA_JWT_TOKEN}`
}
});
その他の設定オプションについては、Mastra Client SDKを参照してください。
認証されたリクエストの実行
MastraClient
が設定されると、フロントエンドアプリケーションから認証されたリクエストを送信したり、ローカルでの簡単なテストにcurl
を使用したりできます:
src/components/test-agent.tsx
import { mastraClient } from "../../lib/mastra-client";
export const TestAgent = () => {
async function handleClick() {
const agent = mastraClient.getAgent("weatherAgent");
const response = await agent.generate({
messages: "Weather in London"
});
console.log(response);
}
return <button onClick={handleClick}>Test Agent</button>;
};
JWTの作成
Mastraサーバーへのリクエストを認証するには、MASTRA_JWT_SECRET
で署名された有効なJSON Web Token(JWT)が必要です。
最も簡単な生成方法はjwt.io を使用することです:
- JWT Encoderを選択します。
- Sign JWT: Secretセクションまでスクロールダウンします。
- あなたのシークレットを入力します(例:
supersecretdevkeythatishs256safe!
)。 - Generate exampleをクリックして有効なJWTを作成します。
- 生成されたトークンをコピーし、
.env
ファイルでMASTRA_JWT_TOKEN
として設定します。