편리하게 빈집을 올리고 구매자와 판매자가 즉각적으로 소통할 수 있는 빈집 매매 플랫폼
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export const middleware = (req: NextRequest) => {
const refreshToken = req.cookies.get('refreshToken');
if (
!refreshToken &&
(req.url.includes('/create') || req.url.includes('/chat') || req.url.includes('/mypage'))
) {
return NextResponse.redirect(new URL('/auth/signIn', req.url));
}
if (refreshToken && (req.url.includes('/auth/signIn') || req.url.includes('/auth/signUp'))) {
return NextResponse.redirect(new URL('/mypage', req.url));
}
return NextResponse.next();
};
export const config = {
matcher: ['/create/:path*', '/chat/:path*', '/mypage/:path*', '/auth/signIn', '/auth/signUp'],
};
사용자의 인증 상태에 따라 특정 페이지 접근을 제한하는 Next.js Middleware를 작성하였으며, 토큰 기반 리다이렉션 로직을 구현하여 보안 및 사용자 경험을 개선했습니다.
트러블1 해결방안
트러블2 해결방안