[관리자페이지] Admin Page - Admin - SiginIn 페이지 #7 Token 체크 리다이렉트
관리자 페이지 화면 구현은 Nextjs를 사용합니다.
Nextjs를 사용하기 위해서는 node.js를 설치해야합니다.
https://nodejs.org/en/download
설치 후에는 npx create-next-app@latest 를 이용해서 nextjs 프로젝트를 생성해 줍니다.
npx create-next-app@latest
app router를 사용합니다.
프로 젝트 생성 후에는 app 디렉토리에 admin과 signin 디렉토리를 각각 생성해 줍니다.
.
┗src
┗app
┗ admin
┗ page.tsx
┗ signin
┗ page.tsx
각 디렉토리에 page.tsx를 생성해 주고 간단한 텍스트 작성 후에
npm run dev
로 실행시킵니다.
// src/app/admin/page.tsx
export default function Admin(){
return <>admin</>
}
// src/app/Signin/page.tsx
export default async function Signin() {
return <>Sign In</>
}
Nextjs middleware를 사용해서 admin page로 접속 시 1) 토큰이 없거나, 2) 토큰이 있지만 만료 되었을 경우 SignIn 페이지로 이동하는 로직을 작성해 줍니다.
토큰은 cookie에 있고
먼저 토큰을 체크하는 로직을 작성해 줍니다.
https://nextjs.org/docs/app/building-your-application/routing/middleware
//src/middleware.ts
import {NextRequest, NextResponse} from 'next/server'
export function middleware(request: NextRequest) {
if (request.nextUrl.pathname.startsWith('/admin')) {
const cookie =request.cookies.get("token");
if(!cookie){
return NextResponse.redirect(new URL('/signin', request.url))
}
}
}
export const config = {
matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)',],
}
'project > 관리자 페이지' 카테고리의 다른 글
[관리자 페이지] Spring boot + H2 + JPA (0) | 2024.05.07 |
---|---|
[관리자 페이지] Spring Boot 3 으로 다시 만들기 # 0 (0) | 2024.05.03 |
[관리자 페이지] Admin Page - 회원가입 구현하기 #6 JWT 토큰 발행 (0) | 2024.04.04 |
[관리자 페이지] Admin Page - 회원가입 구현하기 #5 비밀번호 체크 (0) | 2024.04.01 |
[관리자 페이지] Admin Page - 회원가입 구현하기 #4 비밀번호 암호화 (0) | 2024.03.31 |