미들웨어만 믿으면 안 된다 — DB 없는 블로그에 3겹 인증 admin 붙이기
next-auth v5 beta와 Octokit으로 DB 없이 '어디서나 글쓰기'를 만들면서, 미들웨어 한 겹으로 끝내지 않고 인증을 세 계층에 나눠 건 이야기.
6개의 글
next-auth v5 beta와 Octokit으로 DB 없이 '어디서나 글쓰기'를 만들면서, 미들웨어 한 겹으로 끝내지 않고 인증을 세 계층에 나눠 건 이야기.
예약 완료 후 다음 화면으로 예약번호·이름·전화를 넘겨야 했다. 가장 쉬운 URL 쿼리스트링은 개인정보 평문 노출 + 위변조 위험. 서버 세션 대신 AES-256-GCM 봉인 토큰으로 '무상태 + 위변조 차단'을 동시에 잡은 과정.
BFF 프록시가 클라이언트 요청을 내부 API로 그대로 전달하면, 클라이언트가 실어 보낸 X-API-KEY·X-Auth 헤더도 함께 전달된다. 그 헤더를 신뢰하는 대신, 프록시 단에서 전부 삭제하고 서버가 가진 진짜 값으로 재주입해 위조 자체를 불가능하게 만든 과정.
임직원·법인 회원의 인증 만료를 프론트에서 계산하면, 서버 데이터와 어긋나는 순간 신뢰할 수 없는 판정이 된다. 만료 시점 자체는 서버가 내려주고, 프론트는 현재 시각과 비교만 하도록 역할을 나눈 재인증 플로우를 설계한 과정.
하이브리드 앱의 웹뷰와 네이티브 앱이 로그인 토큰·멤버십 정보를 서로 다르게 들고 있었다. React Native 표준 브릿지를 쓸 수 없는 순수 네이티브 앱 환경에서, iOS·Android 각각 다른 웹뷰 API로 양방향 동기화를 구현한 과정.
액세스 토큰이 만료되는 순간 화면이 동시에 부른 API들이 전부 401을 받고, 각자 토큰 리프레시를 호출하면서 중복 갱신·무효화 충돌로 로그아웃이 튀었다. '리프레시는 한 번만, 나머지는 기다렸다 재시도'하는 인터셉터 큐로 무중단 인증을 만든 과정.