Dub

Dub는 기업가, 크리에이터, 성장 팀을 위한 오픈 소스 현대 링크 관리 플랫폼입니다.

이 플러그인을 사용하면 사용자가 Dub 링크를 통해 가입할 때 리드를 추적할 수 있습니다. 또한 OAuth 연결 지원을 추가하여 Dub의 링크 관리 인프라를 확장하는 통합을 구축할 수 있습니다.

설치

플러그인 설치

먼저 플러그인을 설치합니다:

npm install @dub/better-auth

Dub SDK 설치

다음으로 서버에 Dub SDK를 설치합니다:

npm install dub

플러그인 구성

auth 설정에 플러그인을 추가합니다:

auth.ts
import { betterAuth } from "better-auth"
import { dubAnalytics } from "@dub/better-auth"
import { dub } from "dub"

export const auth = betterAuth({
    plugins: [
        dubAnalytics({
            dubClient: new Dub()
        })
    ]
})

사용법

리드 추적

기본적으로 플러그인은 가입 이벤트를 리드로 추적합니다. disableLeadTrackingtrue로 설정하여 이를 비활성화할 수 있습니다.

import { dubAnalytics } from "@dub/better-auth";
import { betterAuth } from "better-auth";
import { Dub } from "dub";

const dub = new Dub();

const betterAuth = betterAuth({
  plugins: [
    dubAnalytics({
      dubClient: dub,
      disableLeadTracking: true, // 리드 추적 비활성화
    }),
  ],
});

OAuth 연결

플러그인은 계정 연결을 위한 OAuth를 지원합니다.

먼저 Dub에서 OAuth 앱을 설정해야 합니다. Dub는 OAuth 2.0 인증을 지원하며, Dub의 기능을 확장하는 통합을 구축할 때 권장됩니다 (OAuth에 대해 자세히 알아보기).

클라이언트 ID와 클라이언트 시크릿을 받으면 플러그인을 구성할 수 있습니다.

dubAnalytics({
  dubClient: dub,
  oauth: {
    clientId: "your-client-id",
    clientSecret: "your-client-secret",
  },
});

그리고 클라이언트에서는 dubAnalyticsClient 플러그인을 사용해야 합니다.

import { createAuthClient } from "better-auth/client";
import { dubAnalyticsClient } from "@dub/better-auth/client";

const authClient = createAuthClient({
  plugins: [dubAnalyticsClient()],
});

Dub와 계정을 연결하려면 dub.link를 사용해야 합니다.

POST
/dub/link
const { data, error } = await authClient.dub.link({    callbackURL: "/dashboard", // required});
PropDescriptionType
callbackURL
연결 후 리디렉션할 URL
string

옵션

플러그인에 다음 옵션을 전달할 수 있습니다:

dubClient

Dub 클라이언트 인스턴스입니다.

disableLeadTracking

가입 이벤트에 대한 리드 추적을 비활성화합니다.

leadEventName

가입 리드의 이벤트 이름입니다.

customLeadTrack

사용자 정의 리드 추적 함수입니다.

oauth

Dub OAuth 구성입니다.

oauth.clientId

Dub OAuth의 클라이언트 ID입니다.

oauth.clientSecret

Dub OAuth의 클라이언트 시크릿입니다.

oauth.pkce

Dub OAuth에 대한 PKCE를 활성화합니다.

On this page