Authentication di Next.js 2026 – Pendekatan yang Saya Pakai Sekarang
— NextJS, Authentication, AuthJS, Security — 2 min read
Authentication di Next.js 2026 – Pendekatan yang Saya Pakai Sekarang
Halo teman-teman,
Authentication selalu jadi salah satu bagian yang paling sering bikin ribet di project. Setelah coba berbagai cara (NextAuth, Clerk, Auth.js, custom JWT, dll), sekarang saya punya pendekatan yang cukup stabil dan simple.
Ini yang saya pakai di kebanyakan project 2026:
1. Auth.js (NextAuth v5) + Database Session
Saya lebih suka database session daripada pure JWT, terutama untuk aplikasi yang butuh keamanan lebih tinggi (bisa revoke session).
// auth.tsimport NextAuth from "next-auth";import { PrismaAdapter } from "@auth/prisma-adapter";import prisma from "@/lib/prisma";
export const { handlers, auth, signIn, signOut } = NextAuth({ adapter: PrismaAdapter(prisma), providers: [ /* Google, Credentials, dll */ ], session: { strategy: "database" },});2. Server-Side Protection
Saya selalu protect di server dulu:
import { auth } from "@/auth"import { redirect } from "next/navigation"
export default async function DashboardPage() { const session = await auth() if (!session) redirect("/login")
return <div>Welcome {session.user.name}</div>}3. Role-Based Access Control (RBAC) Sederhana
Saya tambahkan role di session:
// typesdeclare module "next-auth" { interface Session { user: { id: string; role: "admin" | "user" | "moderator"; }; }}Lalu di server action / page, saya cek role sebelum lanjut.
4. Hal yang Saya Hindari
- Menyimpan sensitive data di client-side cookie tanpa httpOnly
- Mengandalkan hanya client-side protection
- Membuat auth system dari nol (kecuali benar-benar butuh)
5. Alternatif yang Juga Saya Suka
- Clerk → kalau butuh cepat dan UI bagus out of the box
- Lucia Auth → kalau mau lebih lightweight dan full control
- Supabase Auth → kalau sudah pakai Supabase
Kesimpulan
Di 2026, saya lebih prioritaskan keamanan + maintainability daripada fitur yang berlebihan.
Auth.js + database session masih jadi pilihan utama saya untuk kebanyakan project. Simple, fleksibel, dan cukup powerful.
Pertanyaan buat kalian:
Kalian lagi pakai auth solution apa sekarang?
Auth.js, Clerk, Lucia, atau yang lain?
Cerita di komentar yuk!
— Ady Rahmansyah
Software Engineer | Tech Blogger | Coffee Addict