Sıfır Maliyetli SaaS & Geliştirici Araçları
NextAuth.js v5 Google OAuth Kurulumu (2026 Rehberi)
19 Mart 202610 dk okumaNextAuth v5 · Google OAuth · Prisma adapter · Next.js
NextAuth.js v5, v4'ten önemli bir yeniden yazmadır — yeni yapılandırma formatı, yeni dosya yapısı, yeni edge uyumlu mimari. 2026'da yeni bir Next.js 14 projesi başlatıyorsanız veya v4'ten geçiş yapıyorsanız, bu kılavuz Google OAuth'u Prisma adaptörü ve Neon veritabanıyla doğru şekilde çalıştırmak için ihtiyacınız olan her şeyi kapsar.
v5'te Neler Değişti
- Yapılandırma
pages/api/auth/[...nextauth].ts'den proje kökündekiauth.ts'e taşındı - App Router'da
SessionProviderve hook'lar farklı çalışır - Edge uyumluluğu yerleşiktir
auth()fonksiyonu server component'lar içingetServerSession()'ın yerini alır
Adım 1: Kurulum
npm install next-auth@beta @auth/prisma-adapter
npm install -D prisma @prisma/client
Adım 2: Prisma Şeması
model User {
id String @id @default(cuid())
name String?
email String? @unique
emailVerified DateTime?
image String?
accounts Account[]
sessions Session[]
}
model Account {
id String @id @default(cuid())
userId String
type String
provider String
providerAccountId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@unique([provider, providerAccountId])
}
model Session {
id String @id @default(cuid())
sessionToken String @unique
userId String
expires DateTime
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
}
Adım 3: auth.ts Yapılandırması
import NextAuth from "next-auth";
import Google from "next-auth/providers/google";
import { PrismaAdapter } from "@auth/prisma-adapter";
import { prisma } from "@/lib/prisma";
export const { handlers, signIn, signOut, auth } = NextAuth({
adapter: PrismaAdapter(prisma),
providers: [
Google({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
}),
],
callbacks: {
session: ({ session, user }) => ({
...session,
user: { ...session.user, id: user.id },
}),
},
});
Adım 4: Route Handler ve Middleware
// app/api/auth/[...nextauth]/route.ts
import { handlers } from "@/auth";
export const { GET, POST } = handlers;
// middleware.ts (kök)
export { auth as middleware } from "@/auth";
export const config = { matcher: ["/dashboard/:path*"] };
Ortam Değişkenleri
GOOGLE_CLIENT_ID=google-client-id
GOOGLE_CLIENT_SECRET=google-client-secret
AUTH_SECRET=rastgele-min-32-karakter-gizli-anahtar
DATABASE_URL=neon-baglanti-dizisi
Google Console kurulumu için: console.cloud.google.com'da kimlik bilgileri oluşturun, yetkili yönlendirme URI'sini geliştirme için http://localhost:3000/api/auth/callback/google olarak ayarlayın. Neon veritabanınız ve Google Console kimlik bilgileriniz hazır olduğunda tüm kurulum 30 dakikadan az sürer.
Akın Coşkun
Full Stack Developer · AI & Automation