수파베이스
그만큼@mastra/auth-supabase패키지는 Supabase Auth를 사용하여 Mastra에 대한 인증을 제공합니다. Supabase의 인증 시스템을 사용하여 들어오는 요청을 확인하고 다음을 사용하여 Mastra 서버와 통합합니다.auth옵션.
전제조건전제조건에 대한 직접 링크
이 예제에서는 Supabase Auth를 사용합니다. Supabase 자격 증명을 .env 파일에 추가하고 Supabase 프로젝트가 올바르게 구성되어 있는지 확인하세요.
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key
적절한 데이터 액세스 제어를 보장하려면 Superbase 행 수준 보안(RLS) 설정을 검토하세요.
설치설치에 대한 직접 링크
MastraAuthSupabase 클래스를 사용하기 전에 @mastra/auth-supabase 패키지를 설치해야 합니다.
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/auth-supabase@latest
pnpm add @mastra/auth-supabase@latest
yarn add @mastra/auth-supabase@latest
bun add @mastra/auth-supabase@latest
사용예사용예에 대한 직접 링크
import { Mastra } from '@mastra/core'
import { MastraAuthSupabase } from '@mastra/auth-supabase'
export const mastra = new Mastra({
server: {
auth: new MastraAuthSupabase({
url: process.env.SUPABASE_URL,
anonKey: process.env.SUPABASE_ANON_KEY,
}),
},
})
기본 authorizeUser 메서드는 public 스키마의 users 테이블에 있는 isAdmin 열을 확인합니다. 사용자 권한 부여를 맞춤 설정하려면 Provider를 생성할 때 사용자 지정 authorizeUser 함수를 제공하세요.
사용 가능한 모든 구성 옵션은 MastraAuthSupabase를 참조하세요.
클라이언트 측 설정클라이언트 측 설정에 대한 직접 링크
Supabase 인증을 사용하는 경우 클라이언트 측 Supabase에서 액세스 토큰을 검색하여 Mastra 요청에 전달해야 합니다.
액세스 토큰 검색액세스 토큰 검색에 대한 직접 링크
Supabase 클라이언트를 사용하여 사용자를 인증하고 액세스 토큰을 검색합니다.
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('<supabase-url>', '<supabase-key>')
const authTokenResponse = await supabase.auth.signInWithPassword({
email: "<user's email>",
password: "<user's password>",
})
const accessToken = authTokenResponse.data?.session?.access_token
OAuth, 매직 링크 등 다른 인증 방식은 Supabase 문서를 참조하세요.
구성MastraClientconfiguring-mastraclient에 대한 직접 링크
auth가 활성화되면 MastraClient로 보내는 모든 요청의 Authorization 헤더에 유효한 Supabase 액세스 토큰을 포함해야 합니다.
import { MastraClient } from '@mastra/client-js'
export const mastraClient = new MastraClient({
baseUrl: 'https://<mastra-api-url>',
headers: {
Authorization: `Bearer ${accessToken}`,
},
})
Authorization 헤더의 액세스 토큰 앞에는 Bearer를 붙여야 합니다.
더 많은 구성 옵션은 Mastra Client SDK를 참조하세요.
인증된 요청 만들기인증된 요청 만들기에 대한 직접 링크
Supabase 액세스 토큰으로 MastraClient를 구성하면 인증된 요청을 보낼 수 있습니다.
- React
- cURL
import { mastraClient } from '../../lib/mastra-client'
export const TestAgent = () => {
async function handleClick() {
const agent = mastraClient.getAgent('weatherAgent')
const response = await agent.generate("What's the weather like in New York")
console.log(response)
}
return <button onClick={handleClick}>Test Agent</button>
}
curl -X POST http://localhost:4111/api/agents/weatherAgent/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-supabase-access-token>" \
-d '{
"messages": "Weather in London"
}'