안녕하세요

헤더에 엑세스 토큰 보낼 때 "Content-Type": "application/json", 본문

데이터시각화-KMG

헤더에 엑세스 토큰 보낼 때 "Content-Type": "application/json",

sakuraop 2023. 7. 23. 18:10

이렇게 액세스토큰을 보낼 때 header 에는 Bearer와 contentType을 다음과 같이 포함하여 보냅니다.

        const result = await axios.post("/api/users/login", null, {
          headers: {
            Authorization: `Bearer ${cookieAccessToken}`,
            "Content-Type": "application/json",
          },
        });

 

Bearer와 함께 보내는 것은 토큰의 인증방식을 가리키는 것입니다.

-H 'Authorization: Bearer 2gbdx6oar67tqtcmt49t3wpcgycthx' \
  • Bearer 방식을 이용해 토큰을 인증하겠다는 것으로 이해하면 된다.

 

Content-Type은 바디에 들어갈 내용의 형식을 지정합니다.

위와 같이 보내려고 하는데 

SyntaxError: Unexpected token n in JSON at position 0
    at JSON.parse (<anonymous>)
    at createStrictSyntaxError (C:\Users\young\Desktop\kmg\server\node_modules\express\node_modules\body-parser\lib\types\json.js:160:10)
    at parse (C:\Users\young\Desktop\kmg\server\node_modules\express\node_modules\body-parser\lib\types\json.js:83:15)
    at C:\Users\young\Desktop\kmg\server\node_modules\express\node_modules\body-parser\lib\read.js:128:18
    at AsyncResource.runInAsyncScope (node:async_hooks:203:9)
    at invokeCallback (C:\Users\young\Desktop\kmg\server\node_modules\express\node_modules\raw-body\index.js:231:16)
    at done (C:\Users\young\Desktop\kmg\server\node_modules\express\node_modules\raw-body\index.js:220:7)
    at IncomingMessage.onEnd (C:\Users\young\Desktop\kmg\server\node_modules\express\node_modules\raw-body\index.js:280:7)
    at IncomingMessage.emit (node:events:513:28)
    at endReadableNT (node:internal/streams/readable:1359:12)
  • SyntaxError: Unexpected token n in JSON at position 0 에러가 자꾸만 나타난다.

 

이는 JSON의 타입 문제

{ "userId": null } 과 같이 포함하는 내용을 null로 보내는 것은 가능할지언정,
null 그 자체를 보낼 수는 없는 것이다.

 

무작정 다 같이 포함하여 보내면 에러를 마주할 수 밖에 없는 이유

따라서 보내는 Body가 비어있을 경우에는 
{} 와 같이 빈 객체를 보내거나,

헤더의 Content-Type 을 지정하지 않고 보내면 된다.