JWT 발행 API를 테스트하던 과정에서,
네트워크 응답 상에는 헤더에 Authorization이 오는데
프론트로 보낸 응답을 콘솔에 찍으면 나타나지 않길래 이유를 찾다가 원인을 발견했다.
// 수정 전 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”)
으로 항목을 명시해주었더니
프론트로 응답이 넘어가는 걸 확인할 수 있었다.
간단하게 해결 완료 - !!