Anonymous
Anonymous 플러그인은 사용자가 이메일 주소, 비밀번호, OAuth 제공업체 또는 기타 개인 식별 정보(PII)를 제공하지 않고도 인증된 경험을 할 수 있도록 합니다. 사용자는 나중에 준비가 되면 계정에 인증 방법을 연결할 수 있습니다.
설치
auth 설정에 플러그인 추가
익명 인증을 활성화하려면 인증 설정에 anonymous 플러그인을 추가합니다.
import { betterAuth } from "better-auth"
import { anonymous } from "better-auth/plugins"
export const auth = betterAuth({
// ... 기타 설정 옵션
plugins: [
anonymous()
]
})데이터베이스 마이그레이션
마이그레이션을 실행하거나 스키마를 생성하여 필요한 필드와 테이블을 데이터베이스에 추가합니다.
npx @better-auth/cli migratenpx @better-auth/cli generate필드를 수동으로 추가하려면 스키마 섹션을 참조하세요.
클라이언트 플러그인 추가
다음으로, 인증 클라이언트 인스턴스에 anonymous 클라이언트 플러그인을 포함합니다.
import { createAuthClient } from "better-auth/client"
import { anonymousClient } from "better-auth/client/plugins"
export const authClient = createAuthClient({
plugins: [
anonymousClient()
]
})사용법
로그인
사용자를 익명으로 로그인하려면 signIn.anonymous() 메서드를 사용합니다.
const user = await authClient.signIn.anonymous()계정 연결
사용자가 이미 익명으로 로그인한 상태에서 다른 방법으로 signIn 또는 signUp을 시도하면, 익명 활동을 새 계정에 연결할 수 있습니다.
이를 위해 먼저 플러그인에 onLinkAccount 콜백을 제공해야 합니다.
import { betterAuth } from "better-auth"
export const auth = betterAuth({
plugins: [
anonymous({
onLinkAccount: async ({ anonymousUser, newUser }) => {
// 익명 사용자에서 새 사용자로 장바구니 항목 이동과 같은 작업 수행
}
})
]그런 다음 다른 방법으로 signIn 또는 signUp을 호출하면 onLinkAccount 콜백이 호출됩니다. 그리고 anonymousUser는 기본적으로 삭제됩니다.
const user = await authClient.signIn.email({
email,
})옵션
emailDomainName: 익명 사용자의 이메일 주소를 생성할 때 사용할 도메인 이름. 기본값은 현재 사이트의 도메인 이름입니다.
import { betterAuth } from "better-auth"
export const auth = betterAuth({
plugins: [
anonymous({
emailDomainName: "example.com"
})
]
})-
onLinkAccount: 익명 사용자가 새 인증 방법에 계정을 연결할 때 호출되는 콜백 함수. 콜백은anonymousUser와newUser를 포함하는 객체를 받습니다. -
disableDeleteAnonymousUser: 기본적으로 익명 사용자는 계정이 새 인증 방법에 연결될 때 삭제됩니다. 이 옵션을true로 설정하면 이 동작을 비활성화합니다. -
generateName: 익명 사용자의 이름을 생성하기 위해 호출되는 콜백 함수. 익명 사용자에게 무작위 이름을 부여하거나 데이터베이스에서name이 고유한 경우 유용합니다.
스키마
anonymous 플러그인은 user 테이블에 추가 필드가 필요합니다:
| Field Name | Type | Key | Description |
|---|---|---|---|
| isAnonymous | boolean | 사용자가 익명인지 여부를 나타냅니다. |