[error] 응답 헤더에서 Authorization을 찾을 수 없는 경우

susu·2022년 8월 22일
0
post-thumbnail

JWT 발행 API를 테스트하던 과정에서,

네트워크 응답 상에는 헤더에 Authorization이 오는데
프론트로 보낸 응답을 콘솔에 찍으면 나타나지 않길래 이유를 찾다가 원인을 발견했다.

💡 헤더 Authorization 항목은 서버 CORS 설정에서 명시해주어야 한다

// 수정 전 Configuration

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
               .allowedOrigins("http://localhost:3000")
               .allowedOriginPatterns("*")
               .allowedHeaders("*")
               .exposedHeaders("*")
               .allowedMethods("*")
               .allowCredentials(true);
    }
}

WebConfig는 서버 측에서 CORS 이슈를 피하기 위해 설정한 Configuration이다.

구글링을 해보며 본 바로는 CorsFilter를 사용하는 경우가 더 많았지만
나는 Configuration에 설정하는게 편해서 이렇게 했다.

여기서 .exposedHeaders(”*”) 부분을 그냥 “*”로 퉁쳐서(?) 해결하려고 했는데,
프론트와 통신을 시켜보니 프론트에서 받아온 response를 콘솔에 찍으면 authorization 항목이 보이지 않는 현상이 발생했다.

구글링을 해본 결과 authorization은 configuration 상에서 명시를 해주어야 받아올 수 있다고 한다.
그래서 .exposedHeaders(”Authorization”) 으로 항목을 명시해주었더니

프론트로 응답이 넘어가는 걸 확인할 수 있었다.
간단하게 해결 완료 - !!

profile
블로그 이사했습니다 ✈ https://jennairlines.tistory.com

0개의 댓글