K
KRYFT Problem Bank
백엔드 보통 코딩

JWT 미들웨어 구현

Express.js용 JWT 인증 미들웨어를 구현하세요

30분
100점
120개 테스트케이스
#3667

문제 설명

Express.js 애플리케이션을 위한 JWT 인증 미들웨어를 구현하세요.

요구사항

  • Authorization 헤더에서 Bearer 토큰 추출
  • 토큰 유효성 검증
  • 만료 시간 확인
  • 디코딩된 페이로드를 req.user에 저장
  • 적절한 에러 응답 (401, 403)

사용 예시

app.get("/protected", authMiddleware, (req, res) => {
  res.json({ user: req.user });
});

에러 케이스

  • 토큰 없음: 401 Unauthorized
  • 유효하지 않은 토큰: 401 Invalid token
  • 만료된 토큰: 401 Token expired

예제 테스트케이스

예제 1
입력
86
-487 -351 -321 -204 857 -687 -371 738 -648 -428 999 61 -79 732 125 730 -192 66 -64 4 -991 -273 923 4 962 391 967 634 -771 -972 -515 109 -713 132 647 -913 916 335 675 132 275 -717 -590 993 236 -157 -726 258 -997 331 573 719 427 370 -872 69 100 278 492 317 -909 -237 -717 -517 123 -204 -277 -486 -334 162 -464 -589 -593 339 935 846 426 285 654 882 -144 302 186 842 -474 774
출력
4349
예제 2
입력
30
-692 452 242 391 -70 606 594 -872 -107 -725 856 517 297 -264 -217 -175 728 -888 -988 -659 631 -390 541 -212 -915 -347 485 874 804 283
출력
780
예제 3
입력
96
868 -84 -140 747 -241 122 731 -277 169 -157 489 761 728 -280 -406 63 363 -66 568 66 -840 -121 612 -132 799 -731 275 -945 161 267 -576 188 26 843 -974 799 47 69 -111 -824 494 820 -124 336 -453 388 824 -136 -24 130 -193 -218 418 625 674 555 955 -428 -866 -162 -149 -352 -185 277 -57 920 -994 632 521 115 517 115 148 739 -251 105 806 664 916 -275 96 -532 727 188 657 -423 -305 725 -780 -552 -886 923 -658 -957 -22 991
출력
9875

힌트

실행 버튼을 눌러 코드를 실행하세요.