MastraJwtAuth クラス
MastraJwtAuth
クラスは、JSON Web Token(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}>テスト 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
に設定します。