> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # MastraAuthFirebase 클래스 그만큼`MastraAuthFirebase`클래스는 Firebase 인증을 사용하여 Mastra에 대한 인증을 제공합니다. Firebase ID 토큰을 사용하여 들어오는 요청을 확인하고 다음을 사용하여 Mastra 서버와 통합합니다.`auth`옵션. ## 사용 예 ### 환경 변수를 사용한 기본 사용법 ```typescript import { Mastra } from '@mastra/core' import { MastraAuthFirebase } from '@mastra/auth-firebase' // Automatically uses FIREBASE_SERVICE_ACCOUNT and FIRESTORE_DATABASE_ID env vars export const mastra = new Mastra({ server: { auth: new MastraAuthFirebase(), }, }) ``` ### 맞춤 구성 ```typescript import { Mastra } from '@mastra/core' import { MastraAuthFirebase } from '@mastra/auth-firebase' export const mastra = new Mastra({ server: { auth: new MastraAuthFirebase({ serviceAccount: '/path/to/service-account-key.json', databaseId: 'your-database-id', }), }, }) ``` ## 생성자 매개변수 **serviceAccount** (`string`): Firebase 서비스 계정 JSON 파일의 경로입니다. 이 파일에는 서버 측에서 Firebase ID 토큰을 검증하는 데 필요한 자격 증명이 포함되어 있습니다. (Default: `process.env.FIREBASE_SERVICE_ACCOUNT`) **databaseId** (`string`): 사용할 Firestore 데이터베이스 ID입니다. 기본 데이터베이스에는 일반적으로 '(default)'를 사용합니다. (Default: `process.env.FIRESTORE_DATABASE_ID || process.env.FIREBASE_DATABASE_ID`) **name** (`string`): 인증 Provider 인스턴스의 사용자 정의 이름입니다. (Default: `"firebase"`) **authorizeUser** (`(user: FirebaseUser) => Promise | boolean`): 사용자에게 액세스를 허용할지 결정하는 사용자 정의 권한 부여 함수입니다. 토큰 검증 후 호출됩니다. 기본적으로 사용자 UID를 키로 사용하는 'user\_access' 컬렉션의 문서가 있는지 확인합니다. ## 환경변수 생성자 옵션이 제공되지 않으면 다음 환경 변수가 자동으로 사용됩니다. **FIREBASE\_SERVICE\_ACCOUNT** (`string`): Firebase 서비스 계정 JSON 파일의 경로입니다. serviceAccount 옵션을 제공하지 않은 경우 사용됩니다. **FIRESTORE\_DATABASE\_ID** (`string`): Firestore 데이터베이스 ID입니다. 데이터베이스 구성에 사용하는 기본 환경 변수입니다. **FIREBASE\_DATABASE\_ID** (`string`): Firestore 데이터베이스 ID의 대체 환경 변수입니다. FIRESTORE\_DATABASE\_ID가 설정되지 않은 경우 사용됩니다. ## 기본 인증 동작 기본적으로 `MastraAuthFirebase`는 Firestore를 사용하여 사용자 액세스를 관리합니다. 1. Firebase ID 토큰이 성공적으로 검증되면 `authorizeUser` 메서드가 호출됩니다. 2. 사용자의 UID를 문서 ID로 사용하는 문서가 `user_access` 컬렉션에 있는지 확인합니다. 3. 문서가 존재하면 사용자에게 권한이 부여됩니다. 그렇지 않으면 액세스가 거부됩니다. 4. 사용할 Firestore 데이터베이스는 `databaseId` 매개변수 또는 환경 변수에 따라 결정됩니다. ## Firebase 사용자 유형 `authorizeUser` 함수에서 사용하는 `FirebaseUser` 타입은 다음 항목을 포함하는 Firebase의 `DecodedIdToken` 인터페이스에 해당합니다. - `uid`: 사용자의 고유 식별자 - `email`: 사용자의 이메일 주소(사용 가능한 경우) - `email_verified`: 이메일 인증 여부 - `name`: 사용자의 표시 이름(사용 가능한 경우) - `picture`: 사용자 프로필 사진의 URL(사용 가능한 경우) - `auth_time`: 사용자가 인증한 경우 - 기타 표준 JWT 주장 ## 관련된 [MastraAuthFirebase 클래스](https://mastra.zisheng.pro/ko/docs/server/auth/firebase)