[Axios] response.header.authorization 접근 안되는 오류
오류들

[Axios] response.header.authorization 접근 안되는 오류

728x90

 

 

OAuth로그인을 구현하던 중 서버에 Api를 보내서 userId를 받아오는 과정이 필요했다. 백엔드 친구가 이를 헤더에 authorization에 넣어줬는데 아무리 해도 console창에 undefined가 나왔다.

 

const res = await requestLoginApi({
        state,
        returnState,
        code,
        scope,
        prompt,
        nonce,
      });
  console.log("res", res);
  console.log("headers", res.headers.authorization);

 

 

 

문제의 해결은 아래 스택 오버플로우를 보고 해결할 수 있었다. (역시 gpt보다 아직은..)

 

https://stackoverflow.com/questions/61604379/req-headersauthorization-is-undefined-in-nodejs-jwtjson-web-token

 

req.headers['authorization'] is undefined in Nodejs JWT(JSON WEB TOKEN)

Here is the code for JWT: const express = require("express"); const jwt = require("jsonwebtoken"); const app = express(); app.use(express.json()); const user = [ { name: "Ro...

stackoverflow.com

 

 

 

자, 현재 내 상황은 이렇다. api요청을 보내고 온 response를 개발자도구의 네트워크 탭으로 보면 잘 오고있다.

 

 

 

그런데 res.headers를 실제로 받아서 콘솔창으로 출력하면 아래와 같이 나온다.

 

authorization 필드가 없음

 

 

 

별도 설정이 없다면 브라우저에서는 아래 헤더에만 접근할 수 있다고 한다.

 

  • Cache-Control
  • Content-Language
  • Content-Type
  • Expires
  • Last-Modified
  • Pragma

 

이를 풀어주려면 

 

Access-Control-Expose-Headers: Access-Token, Uid

 

위 설정을 백엔드에서 해서 response를 보내줘야 한다고 한다. 글을 읽고 다시 네트워크탭에서 응답해더를 보니 해당 설정이 아래처럼 되어있었다.

 

 

 

 

놀러나간 백엔드 친구를 볶아서 이를 바꿔주었고 해결이 되었다!!

 

 

 

728x90