| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- React
- openapitools.json
- refresh token race condition
- auth.js
- svgr/cli
- npm publish
- NEXT
- python
- window.scrollY
- next.js
- es module
- refreshaccesstokenerror
- Tanstack Query
- useSWRImmutable
- next/script
- refetchInterval
- nextauth
- flutter
- npm module
- openapi-generator-cli
- typescript
- .vscode
- typescript-axios
- useState
- 폰트 최적화
- openapi-generator
- trustHost
- 웹 디자인
- npm library
- next auth
- Today
- Total
목록next auth (3)
김재욱의 이모저모
문제 발견이전 글에서 Refresh Token 만료 시 자동 로그아웃을 구현했다.잘 동작하는 것 같았는데, 가끔씩 이상한 로그가 찍혔다.✅ refreshed token is success✅ refreshed token is success✅ GET /api/auth/session 200 in 25473ms // 25초??✅ GET /api/auth/session 200 in 3005ms❌ RefreshAccessTokenError: 유효하지 않은 토큰입니다.refreshToken error - invalidating session뭐지?Refresh가 성공했다가 갑자기 실패함로그인된 상태에서 갑자기 로그아웃됨새로고침하면 다시 정상이게 뭔 일이야?원인 분석의심 1: 여러 요청이 동시에 Refresh를 시도하..
문제 발견로컬에서는 잘 되던 로그아웃이 Vercel에 배포하고 나니까 안 되더라구요. 로그아웃 버튼을 눌렀는데 로그인 페이지로 이동은 하는데, 뭔가 이상한 거예요. 세션은 삭제된 것 같은데 헤더를 보면 여전히 "로그아웃" 버튼이 있더라고여.처음엔 "어? 배포 환경에서만 안 되네?" 했는데, 알고 보니 NextAuth v5의 프로덕션 배포에서 흔히 나오는 문제였어요.증상 정리먼저 정확히 뭐가 문제였는지 정리해볼게요:로컬 환경: 로그아웃 버튼 클릭 → 세션 삭제 → 로그인 페이지 이동 → 헤더에 "로그인" 버튼 표시 ✅프로덕션 환경: 로그아웃 버튼 클릭 → /auth/login으로 이동은 함 → 근데 헤더에 "로그아웃" 버튼이 그대로 있음 ❌더 신기한 건, middleware는 제대로 작동한다는 거였어요. ..
문제 상황NextAuth.js를 사용하여 JWT 기반 인증을 구현하던 중, 토큰 갱신 과정에서 이상한 현상이 발생했습니다.첫 번째 세션 호출은 성공적으로 refreshAccessToken을 실행하여 토큰을 갱신그러나 동시에 발생한 나머지 세션 호출들은 모두 실패콘솔 로그를 확인해보니 여러 개의 세션이 거의 동시에 호출되고 있었음원인 분석Race Condition 발생문제의 핵심은 여러 세션 호출이 동시에 발생했을 때였습니다.async jwt({ token, user }) { // 토큰 만료 확인 if (Date.now() 시나리오:페이지가 로드되면서 여러 컴포넌트에서 auth() or useSession()를 동시에 호출모든 호출이 거의 동시에 토큰 만료를 확인모든 호출이 동시에 refreshAcce..