next-auth의 callbacks 실행 순서와 삽질 회고 #548
sunmerrr
started this conversation in
Today I Learned
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
next-auth를 사용할 때, 각 callback의 실행 시점과 역할을 제대로 이해하지 못해 시간을 꽤 많이 허비했다.
특히 session에 커스텀 값을 추가하고 싶을 때, 어느 시점에 넣어야 제대로 반영되는지가 중요했다.
실행 순서 정리!
클라이언트에서 signIn() 호출
→ callbacks.signIn
→ callbacks.jwt (session 쿠키 저장)
→ callbacks.session
→ 클라이언트로 세션 반환
세션 요청(useSession(), getServerSession())
→ JWT 복호화
→ callbacks.jwt
→ callbacks.session
→ 세션 반환
여기서 포인트는 session 객체에 커스텀 데이터를 넣으려면 최초 로그인 시점의 callbacks.jwt에서 추가해야 한다는 것.
이유는, 이 시점의 반환값이 JWT 토큰에 저장되고,
이후에는 별도 업데이트 트리거가 없다면 쿠키에 저장된 값을 계속 재사용하기 때문이다.
callbacks.session에서 값을 추가하면 될 줄 알았는데, 실제로는 이미 JWT에 반영된 데이터만 읽고 있어서 한참 삽질 했다.
결론: '어느 타이밍에 무슨 데이터를 가공해야 하는지'를 모르고 사용하면 오랜 시간동안 삽질을 하게 된다..
Beta Was this translation helpful? Give feedback.
All reactions