organization-best-practices은(는) 무엇을 하나요?
Better Auth의 조직 플러그인을 사용하여 멀티 테넌트 조직을 구성하고, 멤버와 초대를 관리하며, 사용자 정의 역할과 권한을 정의하고, 팀을 설정하며, RBAC를 구현합니다. 사용자가 조직 설정, 팀 관리, 멤버 역할, 접근 제어 또는 Better Auth 조직 플러그인이 필요할 때 사용하세요.
개요
이 기술은 Better Auth의 organization 플러그인을 활용하여 애플리케이션에 다중 테넌트 조직 구조를 구축하는 모범 사례를 제공합니다. 이를 통해 각 조직이 자체 사용자, 역할 및 권한을 가질 수 있습니다.
주요 기능
- 조직 생성 및 관리: 새로운 조직을 생성하고, 기존 조직을 업데이트하며, 삭제합니다.
- 멤버십 관리: 사용자를 조직에 초대하고, 초대를 수락/거절하며, 멤버를 제거합니다.
- 역할 및 권한: 사용자 정의 역할과 권한을 정의하고, 각 멤버에 할당합니다.
- 팀 관리: 조직 내에서 팀을 생성하고 관리합니다.
- RBAC 구현: 역할 기반 접근 제어를 구현하여 리소스에 대한 접근을 제한합니다.
설치
Better Auth에 조직 플러그인을 추가합니다:
import { betterAuth } from "better-auth";
import { organization } from "better-auth/plugins";
export const auth = betterAuth({
plugins: [
organization(),
],
});
기본 사용법
조직 생성
const newOrg = await auth.api.createOrganization({
body: {
name: "My Organization",
slug: "my-org",
},
});
멤버 초대
const invitation = await auth.api.inviteMember({
body: {
organizationId: orgId,
email: "[email protected]",
role: "admin",
},
});
역할 및 권한 정의
const auth = betterAuth({
plugins: [
organization({
roles: {
admin: {
permissions: ["org:read", "org:write", "org:delete", "member:manage"],
},
member: {
permissions: ["org:read"],
},
custom: {
permissions: ["org:read", "org:write"],
},
},
}),
],
});
API 참조
| 메서드 | 설명 |
|---|---|
createOrganization | 새 조직 생성 |
updateOrganization | 조직 세부 정보 업데이트 |
deleteOrganization | 조직 삭제 |
inviteMember | 조직에 멤버 초대 |
acceptInvitation | 초대 수락 |
rejectInvitation | 초대 거절 |
removeMember | 멤버 제거 |
updateMemberRole | 멤버 역할 업데이트 |
createTeam | 조직 내 팀 생성 |
updateTeam | 팀 정보 업데이트 |
deleteTeam | 팀 삭제 |
모범 사례
- 역할을 신중하게 정의: 필요에 따라 역할과 권한을 정의하고, 최소 권한 원칙을 따릅니다.
- 초대 워크플로우 구현: 사용자 친화적인 초대 수락 및 거절 흐름을 구현합니다.
- 조직 슬러그 고유성 유지: 조직 슬러그가 고유하도록 보장하여 충돌을 방지합니다.
- 감사 로깅: 중요한 조직 변경 사항을 기록하여 보안 및 감사 요구 사항을 충족합니다.