Multi Session
multi-session 플러그인을 사용하면 사용자가 동일한 브라우저에서 여러 계정에 걸쳐 여러 활성 세션을 유지할 수 있습니다. 이 플러그인은 사용자가 로그아웃하지 않고 여러 계정 간에 전환해야 하는 애플리케이션에 유용합니다.
설치
auth 설정에 플러그인 추가
import { betterAuth } from "better-auth"
import { multiSession } from "better-auth/plugins"
export const auth = betterAuth({
plugins: [
multiSession(),
]
})클라이언트 플러그인 추가
클라이언트 플러그인을 추가하고 2단계 인증이 필요한 경우 사용자가 리디렉션될 위치를 지정합니다
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-sessionsconst { data, error } = await authClient.multiSession.listDeviceSessions();활성 세션 설정
활성 세션을 설정하려면 setActive 메서드를 호출할 수 있습니다.
POST
/multi-session/set-activeconst { data, error } = await authClient.multiSession.setActive({ sessionToken: "some-session-token", // required});| Prop | Description | Type |
|---|---|---|
sessionToken | 활성으로 설정할 세션 토큰 | string |
세션 취소
세션을 취소하려면 revoke 메서드를 호출할 수 있습니다.
POST
/multi-session/revokeconst { data, error } = await authClient.multiSession.revoke({ sessionToken: "some-session-token", // required});| Prop | Description | Type |
|---|---|---|
sessionToken | 취소할 세션 토큰 | string |
로그아웃 및 모든 세션 취소
사용자가 로그아웃하면 플러그인은 해당 사용자의 모든 활성 세션을 취소합니다. 기존 signOut 메서드를 호출하여 이를 수행할 수 있으며, 이 메서드는 모든 세션 취소를 자동으로 처리합니다.
최대 세션 수
플러그인에 maximumSessions 옵션을 전달하여 사용자가 가질 수 있는 최대 세션 수를 지정할 수 있습니다. 기본적으로 플러그인은 디바이스당 5개의 세션을 허용합니다.
import { betterAuth } from "better-auth"
export const auth = betterAuth({
plugins: [
multiSession({
maximumSessions: 3
})
]
})