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

이자이님의 프로필 이미지

작성한 질문수

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

msw 세팅과 버전 업그레이드

next-auth session expire 관련 질문이 있습니다.

24.07.07 19:47 작성

·

160

0

안녕하세요. 우선 강의 너무 잘 보고 있습니다 감사합니다!

강의 내용을 기반으로 NextAuth 관련 작업을 하다가 궁금한 점이 생겼습니다.

NextAuth로 signIn을 할 때 세션 정보가 쿠키에 저장되는데, 이때 max-age 옵션을 따로 설정하지 않으면 기본적으로 1달로 설정되고 있는 것 같습니다. 찾아보니 max-age 값을 최대값으로 설정하려고 해도(예: 4년), NextAuth에서는 자체적으로 최대 1년으로 제한하는 것 같습니다.

여기서 제가 궁금한 것은, NextAuth를 사용하면 쿠키의 max-age가 최대 1년이고, 그렇다면 1년 후에 세션이 만료되니까 모든 사용자가 로그아웃되는 것인가? 라는 생각이 들었습니다.

세션 저장 기한을 무기한으로 설정하는건 불가능해보이고,
찾아보니 서버 환경에서 세션을 업데이트할 수 있는 unstable_update라는 함수를 발견했는데 문서에서 해당 함수는 세션 정보를 업데이트하는 것이고 cookie에 저장된 세션 자체의 expire를 조정하는 예시는 나와있지 않아서 이걸 사용하는게 맞는지도 확신이 안드는 상태입니다 ㅠㅠ

지속적으로 접속하는 사용자에 한해서 세션 만료 시간을 연장할 수 있는 방법이 따로 있을까요?

답변 2

0

이자이님의 프로필 이미지
이자이
질문자

2024. 07. 07. 21:46

signIn을 다시 호출한다는 말씀을 이해 못했습니다 ㅠㅠ

현재 적용되어 있는 구조는 사용자의 아이디, 비밀번호를 signIn 함수의 credentials 파라미터로 넘긴 후 API를 쏘는 방식인데 이 함수를 한번 더 호출하면 되는건가요? 그렇다면 재호출할 때 이때 필요한 파라미터 값(아이디, 비밀번호)는 어떻게 처리하면 되는걸까요..?

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

2024. 07. 07. 22:48

네네 맞습니다. 아이디 비밀번호 db에서 불러오시면 되죠

0

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

2024. 07. 07. 21:02

그냥 쿠키를 재발급하면 됩니다. signIn을 다시 호출하면 쿠키가 재발급되므로 만료일 근처에서 호출하면 됩니다.