Multi Session

multi-session 플러그인을 사용하면 사용자가 동일한 브라우저에서 여러 계정에 걸쳐 여러 활성 세션을 유지할 수 있습니다. 이 플러그인은 사용자가 로그아웃하지 않고 여러 계정 간에 전환해야 하는 애플리케이션에 유용합니다.

설치

auth 설정에 플러그인 추가

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

export const auth = betterAuth({
    plugins: [ 
        multiSession(), 
    ] 
})

클라이언트 플러그인 추가

클라이언트 플러그인을 추가하고 2단계 인증이 필요한 경우 사용자가 리디렉션될 위치를 지정합니다

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

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

사용법

사용자가 로그인할 때마다 플러그인은 브라우저에 추가 쿠키를 추가합니다. 이 쿠키는 여러 계정에 걸쳐 여러 세션을 유지하는 데 사용됩니다.

모든 디바이스 세션 나열

현재 사용자의 모든 활성 세션을 나열하려면 listDeviceSessions 메서드를 호출할 수 있습니다.

GET
/multi-session/list-device-sessions
const { data, error } = await authClient.multiSession.listDeviceSessions();

활성 세션 설정

활성 세션을 설정하려면 setActive 메서드를 호출할 수 있습니다.

POST
/multi-session/set-active
const { data, error } = await authClient.multiSession.setActive({    sessionToken: "some-session-token", // required});
PropDescriptionType
sessionToken
활성으로 설정할 세션 토큰
string

세션 취소

세션을 취소하려면 revoke 메서드를 호출할 수 있습니다.

POST
/multi-session/revoke
const { data, error } = await authClient.multiSession.revoke({    sessionToken: "some-session-token", // required});
PropDescriptionType
sessionToken
취소할 세션 토큰
string

로그아웃 및 모든 세션 취소

사용자가 로그아웃하면 플러그인은 해당 사용자의 모든 활성 세션을 취소합니다. 기존 signOut 메서드를 호출하여 이를 수행할 수 있으며, 이 메서드는 모든 세션 취소를 자동으로 처리합니다.

최대 세션 수

플러그인에 maximumSessions 옵션을 전달하여 사용자가 가질 수 있는 최대 세션 수를 지정할 수 있습니다. 기본적으로 플러그인은 디바이스당 5개의 세션을 허용합니다.

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

export const auth = betterAuth({
    plugins: [
        multiSession({
            maximumSessions: 3
        })
    ]
})

On this page