28 lines
848 B
TypeScript
28 lines
848 B
TypeScript
import createMiddleware from 'next-intl/middleware'
|
||
import { NextRequest, NextResponse } from 'next/server'
|
||
import { routing } from '@/i18n/routing'
|
||
|
||
const intlMiddleware = createMiddleware(routing)
|
||
|
||
export async function middleware(request: NextRequest) {
|
||
const { pathname } = request.nextUrl
|
||
|
||
// Admin route'ları — token kontrolü
|
||
if (pathname.includes('/admin') && !pathname.includes('/admin/login')) {
|
||
const token =
|
||
request.cookies.get('next-auth.session-token')?.value ||
|
||
request.cookies.get('__Secure-next-auth.session-token')?.value
|
||
|
||
if (!token) {
|
||
const locale = pathname.split('/')[1] || 'tr'
|
||
return NextResponse.redirect(new URL(`/${locale}/admin/login`, request.url))
|
||
}
|
||
}
|
||
|
||
return intlMiddleware(request)
|
||
}
|
||
|
||
export const config = {
|
||
matcher: ['/((?!api|_next|_vercel|.*\\..*).*)', '/'],
|
||
}
|