Inflearn brand logo image

인프런 커뮤니티 질문&답변

찹찹이님의 프로필 이미지
찹찹이

작성한 질문수

Next + React Query로 SNS 서비스 만들기

next-auth로 로그인하기

next.js 에서 로그인에 관하여

작성

·

75

0

안녕하세요 제로초님, 로그인 관련해서 어려움이 있어서 질문드립니다.

 

현재 사용하고 있는 기술 스택은 다음과 같습니다.

프론트 : next.js/백엔드 : express

 

로그인을 구현했고 백엔드에서 토큰을 만들어서

  • refreshToken 은 httpOnly cookie 에,

  • accessToken 은 응답 바디에 넣어서 보내주도록 만들었습니다.

 

라이브러리 사용하지 않고, next.js 에서 로그인 api 호출하고

  • token 은 전역으로 관리하고,

  • 토큰 만료시 토큰 재발급하고,

  • 새로고침 시에도 로그인이 유지되도록(httponly 쿠키로) fetchWrapper 을 따로 만들었습니다.


    -> fetch 은 axios 와 달리 interceptor 같은거 못사용하니까요

 

하지만 이는 클라이언트 컴포넌트에서만 가능하고, 서버에서는 토큰 만료시 재시도 로직이 불가능하다는 것을 알게되었습니다.

 

코드도 지저분해지는 것같고.. 그래서 다른 해결책이 있나해서 이 강의의 로그인 부분을 보고있습니다.

 

근데 auth,js 는 env 에 jwt secret 키를 넣어야하는걸 보니 클라이언트에서 토큰을 관리하는 것 같더라구요

 

제 생각은 auth.js 는 백엔드 서버에서 쿠키를 관리하는 방식과 함께 사용하기에는 맞지 않다는 느낌을 들었습니다.

 

그래서 next.js 에서 로그인 및 권한 관리를 쉽게 사용하려면 결국 auth.js 를 사용해야만 하는 것인지.... 궁금합니다. 그렇게된다면 백엔드에서 토큰 만드는 로직을 없애는 것이 맞는지 궁금합니다.

 

감사합니다.

 

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

서버에서도 토큰 만료시 재시도를 하시려면 액세스토큰도 쿠키로 갖고있으셔야지만 가능합니다. 그래야 서버에서 엑세스토큰에 접근해 토큰 만료가 되었는지 체크할 수 있고, 재시도도 가능합니다. 그렇게 한다면 auth.js도 같이 쓰실 수 있지 않나 싶습니다.

찹찹이님의 프로필 이미지
찹찹이

작성한 질문수

질문하기