카테고리 없음

Next-auth middleware

노엠디엔 2023. 8. 18. 14:25

next-auth를 이용해서 로그인한 후 session을 통해 권한이 없다면 특정페이지로 이동할 수 없게끔 구현하기 위해

Next.js에서 지원하는 middleware를 생성했다

middleware는 요청 핸들러 전에 실행되는 함수로, 수신된 요청을 더 세밀하게 관리할 수 있도록 도와주는 역할을 한다

 

Next.js middleware공식 문서:

https://nextjs.org/docs/pages/building-your-application/routing/middleware

next-auth middleware 공식문서

https://next-auth.js.org/tutorials/securing-pages-and-api-routes

middleware란? 

프로그래밍 언어에서  응용 소프트웨어가 운영체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어라는 뜻을 가지고 있다.

 

mddleware.ts

Next-auth에서 지원해 주는  getToken() 함수에 인자로 middleware가 받아오는 req와 secret을 인자로 주고 

 getToken의 결괏값으로 session을 받을 수 있다.

req에는 여러 가지 정보들이 있는데 그중에서 nextUrl을 통해 현재 페이지의 경로를 확인할 수 있다.

 

NextRequest와 NextReponse 공식 문서에서 nextUrl에 대한 정보가 있다.

https://nextjs.org/docs/pages/api-reference/functions/next-server


해당 경로를 확인하여 session을 확인하면서 상황에 맞게 다른 페이지로 
NextResponse.redirect를 통해서 이동시켜 준다.