[백업][가리사니] 쿠키(세션id) 방식에서 jwt 변경 시 따라오는 장점. (cors)
ci/cd, cloud, docker, nomad
이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
CORS를 위해서는 서버에선 아래와 같이 작성해야 한다.
- 언어마다, 프레임워크마다 작성법이 다르겠지만 그건 중요한게 아니니 신경쓰지말자.
fun corsConfigurationSource(): CorsConfigurationSource { val configuration = CorsConfiguration() configuration.allowedOrigins = listOf("*") configuration.allowedMethods = listOf("*") configuration.allowedHeaders = listOf("*") configuration.allowCredentials = true val source = UrlBasedCorsConfigurationSource() source.registerCorsConfiguration("/**", configuration) return source }
예를들어서 위와 같이 사용하는 경우 정책 오류가 발생할 것이다. 왜냐하면 allowedOrigins 이 * 이면서 동시에 allowCredentials(쿠키)를 허용할 수 없기 때문이다.
하지만 JWT를 사용하는 경우는 여러분이 allowedHeaders 에 정의한 커스텀 이름만 허용하면 되기 때문에 allowCredentials를 제외하고 사용하면 된다.
fun corsConfigurationSource(): CorsConfigurationSource {
val configuration = CorsConfiguration()
configuration.allowedOrigins = listOf("*")
configuration.allowedMethods = listOf("*")
configuration.allowedHeaders = listOf("*")
val source = UrlBasedCorsConfigurationSource()
source.registerCorsConfiguration("/**", configuration)
return source
}
참고
- https://gs.saro.me/2023/02/04/%EB%B0%B1%EC%97%85-%EA%B0%80%EB%A6%AC%EC%82%AC%EB%8B%88-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%ED%94%8C%EB%A0%88%EC%96%B4%EB%A1%9C-%EB%B0%B1%EC%97%94%EB%93%9C-%ED%94%84%EB%A1%9D%EC%8B%9C-%EB%B0%8F-%ED%94%84%EB%A1%A0%ED%8A%B8-%EB%B6%84%EB%A6%AC/html