/
DME
/
Notes
Обзор
Документация
Войти
/
DME
/
Notes
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/middleware.ts
42 строки
1 KB
Karasique333
Commit
19 июн 2025, 15:09
19 июн 2025, 15:09
d96c829
Код
Авторство
О чём код?
import { betterFetch } from '@better-fetch/fetch' import type { Session } from 'better-auth/types' import { type NextRequest, NextResponse } from 'next/server' import { isRequestedAuthPage, securedPages } from './lib/auth' export default async function middleware(request: NextRequest) { const { pathname } = request.nextUrl const { data: session } = await betterFetch<Session>( '/api/auth/get-session', { baseURL: request.nextUrl.origin, headers: { cookie: request.headers.get('cookie') ?? '', }, } ) if (isRequestedAuthPage(pathname)) { if (session) { return NextResponse.redirect(new URL('/', request.url)) } return NextResponse.next() } if (securedPages(pathname)) { if (!session) { return NextResponse.redirect(new URL('/auth/login', request.url)) } return NextResponse.next() } return NextResponse.next() } export const config = { matcher: [ '/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)', ], }