Blog
|
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ündeki auth.ts'e taşındı
  • App Router'da SessionProvider ve hook'lar farklı çalışır
  • Edge uyumluluğu yerleşiktir
  • auth() fonksiyonu server component'lar için getServerSession()'ı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

Tüm yazılar