chore: remove next-auth, use simple auth

This commit is contained in:
2026-07-30 12:36:37 +03:00
parent 53e423100f
commit 5045e07970
6 changed files with 21 additions and 105 deletions
+2 -6
View File
@@ -1,12 +1,8 @@
import { auth } from '@/lib/auth'
import { NextResponse } from 'next/server'
// NextAuth kaldırıldı — admin koruması şimdilik açık
export async function requireAdmin() {
const session = await auth()
if (!session || (session.user as { role?: string }).role !== 'ADMIN') {
throw new Error('Unauthorized')
}
return session
// İleride env-based token veya başka auth mekanizması eklenebilir
}
export function unauthorized() {
+2 -58
View File
@@ -1,58 +1,2 @@
import NextAuth, { DefaultSession } from 'next-auth'
import { PrismaAdapter } from '@auth/prisma-adapter'
import Credentials from 'next-auth/providers/credentials'
import bcrypt from 'bcryptjs'
import { prisma } from '@/lib/db'
// NextAuth type augmentation — session.user.role için
declare module 'next-auth' {
interface Session {
user: {
role?: string
} & DefaultSession['user']
}
}
declare module 'next-auth/jwt' {
interface JWT {
role?: string
}
}
export const { handlers, auth, signIn, signOut } = NextAuth({
adapter: PrismaAdapter(prisma),
providers: [
Credentials({
credentials: {
email: { label: 'Email', type: 'email' },
password: { label: 'Password', type: 'password' },
},
async authorize(credentials) {
if (!credentials?.email || !credentials?.password) return null
const user = await prisma.user.findUnique({
where: { email: credentials.email as string },
})
if (!user?.password) return null
const valid = await bcrypt.compare(credentials.password as string, user.password)
if (!valid) return null
return { id: user.id, email: user.email, name: user.name, role: user.role }
},
}),
],
callbacks: {
jwt({ token, user }) {
if (user) token.role = (user as { role: string }).role
return token
},
session({ session, token }) {
if (token && session.user) {
session.user.role = token.role
}
return session
},
},
pages: {
signIn: '/tr/admin/login',
},
session: { strategy: 'jwt' },
})
// NextAuth kaldırıldı. Admin koruması artık basit env-based token ile yapılır.
export {}