20 lines
608 B
TypeScript
20 lines
608 B
TypeScript
|
import type { NextRequest } from 'next/server'
|
||
|
|
||
|
export function middleware(request: NextRequest) {
|
||
|
const currentUser = request.cookies.get('token')?.value
|
||
|
|
||
|
if (currentUser && !request.nextUrl.pathname.startsWith('/')) {
|
||
|
return Response.redirect(new URL('/', request.url))
|
||
|
}
|
||
|
|
||
|
if (!currentUser
|
||
|
&& !request.nextUrl.pathname.startsWith('/signin')
|
||
|
&& !request.nextUrl.pathname.startsWith('/signup')
|
||
|
) {
|
||
|
return Response.redirect(new URL('/signin', request.url))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export const config = {
|
||
|
matcher: ['/((?!api|_next/static|_next/image|.*\\.png$).*)'],
|
||
|
}
|