본문으로 건너뛰기

MastraAuthBetterAuth 클래스

그만큼MastraAuthBetterAuth클래스는 Better Auth를 사용하여 Mastra 애플리케이션에 대한 인증을 제공합니다. Better Auth 세션으로 들어오는 요청을 확인하고 다음을 사용하여 Mastra 서버와 통합합니다.auth옵션.

사용예
사용예에 대한 직접 링크

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { MastraAuthBetterAuth } from '@mastra/auth-better-auth'
import { betterAuth } from 'better-auth'

// Create your Better Auth instance
const auth = betterAuth({
database: {
provider: 'postgresql',
url: process.env.DATABASE_URL,
},
emailAndPassword: {
enabled: true,
},
baseURL: process.env.BETTER_AUTH_URL,
secret: process.env.BETTER_AUTH_SECRET,
})

export const mastra = new Mastra({
server: {
auth: new MastraAuthBetterAuth({
auth,
}),
},
})

생성자 매개변수
생성자 매개변수에 대한 직접 링크

auth:

Auth
betterAuth({ ... })를 통해 생성한 Better Auth 인스턴스입니다. 필수이며 지원되는 데이터베이스 Provider로 올바르게 구성해야 합니다.

name?:

string
= 'better-auth'
인증 Provider 인스턴스의 사용자 정의 이름입니다.

authorizeUser?:

(user: BetterAuthUser, request: HonoRequest) => Promise<boolean> | boolean
사용자에게 액세스를 허용할지 결정하는 사용자 정의 권한 부여 함수입니다. 세션 검증 후 호출됩니다. 기본적으로 유효한 세션을 보유한 모든 인증된 사용자를 허용합니다.

public?:

Array<string | RegExp | [string, Methods | Methods[]]>
인증이 필요하지 않은 공개 경로입니다. 정확한 경로, 와일드카드 및 경로 매개변수를 지원합니다.

protected?:

Array<string | RegExp | [string, Methods | Methods[]]>
인증이 필요한 보호 경로입니다. 정확한 경로, 와일드카드 및 경로 매개변수를 지원합니다.

BetterAuthUser유형
betterauthuser-type에 대한 직접 링크

BetterAuthUser 타입에는 Better Auth에서 반환한 세션 및 사용자 정보가 포함됩니다.

interface BetterAuthUser {
session: Session
user: User
}
  • session: 세션 메타데이터를 포함하는 Better Auth 세션 객체
  • user: 사용자 세부정보가 포함된 인증된 사용자 개체

SessionUser 타입은 Better Auth 패키지에서 내보냅니다.

일치 규칙
일치 규칙에 대한 직접 링크

  • publicprotected는 정확한 경로, 와일드카드 패턴(예: /api/*) 및 경로 매개변수(예: /users/:id)를 허용합니다.
  • 메서드별 규칙에는 ["/api/agents", ["GET", "POST"]]와 같은 튜플을 사용하세요.
  • 경로가 publicprotected 모두에 일치하면 public이 우선하며 인증이 필요하지 않습니다.
  • 둘 다 일치하지 않으면 경로는 기본적으로 보호되는 것으로 간주됩니다(경로에 requiresAuth: false가 명시적으로 표시된 경우 제외).

MastraAuthBetterAuth 클래스