조건부 headers, authorization

강연주·2025년 6월 6일

📚 TIL

목록 보기
168/186
  1. 로그인하지 않은 유저도 광고글 목록을 볼 수 있게 하자.
  2. 백엔드에서 조회 로직을 수정해주었는데 왜 401 unauthorized가 뜨지?
  3. 내 GET 요청 코드가 그대로이기 때문!
🖥️ 액세스 토큰이 없는 유저가 어떻게 액세스 토큰을 넣어서 요청하니...?
headers: {
          Authorization: `Bearer ${accessToken}`,
        },

BE분이 보내준 답변

GPT 왈 : 일반적인 관행 (권장 방식)은 헤더에 Authorization 헤더를 아예 포함하지 않는 것이다.

  • 이유? Authorization 헤더는 인증 정보가 있을 때만 보내는 것이 표준.
    빈 값을 보내면 "Authorization: Bearer " 와 같이 전송되며, 일부 미들웨어나 인증 로직에서 잘못된 토큰으로 인식할 수 있다.
    (예: Django REST Framework (DRF)에서는 빈 Bearer 토큰도 인증 시도 대상으로 처리하려 하고, AuthenticationFailed 예외가 발생할 수 있음)
  • 포함하지 않으면 클라이언트 코드도 간단해진다.
    토큰이 없으면 그냥 헤더를 생략!
  1. 오호 그렇구나 그런데 어떻게 조건부로 헤더를 뗐다 붙였다(?) 하지?
  2. 이렇게 하면 됩니다..

알고 나면 별게 아니고, headers는 객체고, 그러므로 기본 문법을 생각해본 뒤 이렇게 해도 되나? 직접 쳐보고 돌려봤으면 되는 거였고. 근데 왜 그렇게 못 하는 걸까용..? 어딘가 존재하(기도 하고 아니기도하)는 정답을 최대한 빠르게 알아내고 시험 공부 하듯 흡수만 하려는 평생의 습관 때문일까..🥹 부딪히고 깨지며 체득하려면 한번 해볼까 생각해야 되는 건데. 그 생각이.. 안 떠오른다고,, 흦흑..

profile
아무튼, 개발자

0개의 댓글