Anonymous

Anonymous 플러그인은 사용자가 이메일 주소, 비밀번호, OAuth 제공업체 또는 기타 개인 식별 정보(PII)를 제공하지 않고도 인증된 경험을 할 수 있도록 합니다. 사용자는 나중에 준비가 되면 계정에 인증 방법을 연결할 수 있습니다.

설치

auth 설정에 플러그인 추가

익명 인증을 활성화하려면 인증 설정에 anonymous 플러그인을 추가합니다.

auth.ts
import { betterAuth } from "better-auth"
import { anonymous } from "better-auth/plugins"

export const auth = betterAuth({
    // ... 기타 설정 옵션
    plugins: [
        anonymous() 
    ]
})

데이터베이스 마이그레이션

마이그레이션을 실행하거나 스키마를 생성하여 필요한 필드와 테이블을 데이터베이스에 추가합니다.

npx @better-auth/cli migrate
npx @better-auth/cli generate

필드를 수동으로 추가하려면 스키마 섹션을 참조하세요.

클라이언트 플러그인 추가

다음으로, 인증 클라이언트 인스턴스에 anonymous 클라이언트 플러그인을 포함합니다.

auth-client.ts
import { createAuthClient } from "better-auth/client"
import { anonymousClient } from "better-auth/client/plugins"

export const authClient = createAuthClient({
    plugins: [
        anonymousClient()
    ]
})

사용법

로그인

사용자를 익명으로 로그인하려면 signIn.anonymous() 메서드를 사용합니다.

example.ts
const user = await authClient.signIn.anonymous()

계정 연결

사용자가 이미 익명으로 로그인한 상태에서 다른 방법으로 signIn 또는 signUp을 시도하면, 익명 활동을 새 계정에 연결할 수 있습니다.

이를 위해 먼저 플러그인에 onLinkAccount 콜백을 제공해야 합니다.

auth.ts
import { betterAuth } from "better-auth"

export const auth = betterAuth({
    plugins: [
        anonymous({
            onLinkAccount: async ({ anonymousUser, newUser }) => {
               // 익명 사용자에서 새 사용자로 장바구니 항목 이동과 같은 작업 수행
            }
        })
    ]

그런 다음 다른 방법으로 signIn 또는 signUp을 호출하면 onLinkAccount 콜백이 호출됩니다. 그리고 anonymousUser는 기본적으로 삭제됩니다.

example.ts
const user = await authClient.signIn.email({
    email,
})

옵션

  • emailDomainName: 익명 사용자의 이메일 주소를 생성할 때 사용할 도메인 이름. 기본값은 현재 사이트의 도메인 이름입니다.
auth.ts
import { betterAuth } from "better-auth"

export const auth = betterAuth({
    plugins: [
        anonymous({
            emailDomainName: "example.com"
        })
    ]
})
  • onLinkAccount: 익명 사용자가 새 인증 방법에 계정을 연결할 때 호출되는 콜백 함수. 콜백은 anonymousUsernewUser를 포함하는 객체를 받습니다.

  • disableDeleteAnonymousUser: 기본적으로 익명 사용자는 계정이 새 인증 방법에 연결될 때 삭제됩니다. 이 옵션을 true로 설정하면 이 동작을 비활성화합니다.

  • generateName: 익명 사용자의 이름을 생성하기 위해 호출되는 콜백 함수. 익명 사용자에게 무작위 이름을 부여하거나 데이터베이스에서 name이 고유한 경우 유용합니다.

스키마

anonymous 플러그인은 user 테이블에 추가 필드가 필요합니다:

Field NameTypeKeyDescription
isAnonymousboolean사용자가 익명인지 여부를 나타냅니다.

On this page