Better auth
Phân quyền
Phân quyền cho User
Để phân quyền cho user, cần 2 bước:
- Tạo file user.ts
- Tạo Role trong bảng dữ liệu
Tạo riêng file lib/user.ts
import { auth } from "@/lib/auth";
export async function getCurrentUser(headers: Headers) {
const user = await auth.api.getUser({ headers });
return user;
}
export async function isAdmin(headers: Headers) {
const user = await getCurrentUser(headers);
return user?.role === "ADMIN";
}
export async function isSubscriber(headers: Headers) {
const user = await getCurrentUser(headers);
return user?.role === "SUBSCRIBER";
}Tạo Role cho bảng dữ liệu
Thêm role vào schema
model User {
id String @id @default(cuid())
email String @unique
password String?
name String?
role Role @default(USER)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
enum Role {
ADMIN
USER
SUBSCRIBER
}Chạy lệnh cập nhật bảng
npx prisma generate
npx prisma migrate dev --name add-user-role