Skip to main content
Ejecuta cualquier Skill en Manus
con un clic

biz-admin-google-auth

Estrellas0
Forks0
Actualizado5 de julio de 2026 a las 14:05

Nâng cấp xác thực trang /admin (và /admin/affiliates) của landing page Next.js App Router từ **password popup** (ADMIN_PASSWORD + header x-admin-pass) sang **đăng nhập Google qua Supabase Auth + allowlist** — chỉ email nằm trong bảng `admin_users` mới vào được, có khái niệm **super admin** (hard-code, không tự xoá được mình) và tab **Quản trị viên** ngay trong dashboard để super admin thêm/xoá quản trị viên khác. Skill scaffold: migration Supabase (`admin_users` table RLS deny-all + hàm SECURITY DEFINER `is_admin_email`), `lib/admin-auth.ts` (`requireAdmin`/`requireSuperAdmin`/`adminAuthError` verify Bearer token offline qua getClaims), `lib/admin-client.ts` (browser PKCE OAuth + `loginWithGoogle`/`logout`/`adminFetch`), `lib/admin-users.ts` (allowlist CRUD + `isSuperAdmin`), 2 API route (`/api/admin/me`, `/api/admin/admin-users`), component `components/AdminUsersTab.tsx` (tab Quản trị viên). Sau đó PATCH các route `/api/admin/*` đã có (thay `checkAdminPass()` → `requireAdmin()`) và PATCH `app/admin/page.tsx`

Instalación

Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.

Explorador de archivos
10 archivos
SKILL.md
readonly