spring formLogin.disable, react.js 세션 로그인 연동(항해일지 36, 37일차)

김형준·2022년 6월 14일
0

TIL&WIL

목록 보기
36/45
post-thumbnail

1. 개발 및 학습일지


1) spring formLogin.disable()

  • 프론트와의 첫 협업
  • 팀원 모두가 API 명세에 따라 각자 맡은 영역을 개발했다.
  • 백엔드 서버 개발이 먼저 통합되어야 할 필요성을 느껴, 충돌나지 않을까 걱정하며 깃헙을 통해 푸시하고 풀받고를 반복했다.
  • 사실, 거창한 기능 구현 단계가 아니라 백엔드 간 통합에는 문제가 없었다. (한번 충돌하긴 했으나, 해결완료!)
  • 그러나,,
  • CORS를 너무 만만히 봤다.
  • 쿠키, 세션 방식의 스프링 시큐리티를 활용했는데, 다른 도메인으로 요청을 보내고 다시 받을 때, CORS의 설정이 꽤나 많이 필요했다.
    @Bean
    public CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.addAllowedMethod("*");
        configuration.addAllowedHeader("*");
        configuration.addExposedHeader("Authorization");
        configuration.addAllowedOriginPattern("http://amorossoprc.shop/"); // 배포 전 모두 허용  -> 도메인으로 변경!
        configuration.setAllowCredentials(true);

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }
  • 그 중에서도 프론트와 백 모두 Credential을 allow 해줘야만 서버에서 보낸 JSESSIONID 쿠키가 클라이언트에 저장된다. 저장되지 않는다.

  • 저장되는 줄 알았는데 저장되지 않는다. 다음 게시글에 해당 내용을 정리할 예정이다.😥

  • 오늘 하루 종일 CORS 오류만 본 것 같다.

  • 이래서 JWT로 구현하는 방식을 많이들 사용하는 것 같다.

  • (설정해줄게 꽤나 많음..)

  • 아직 쓰고 싶은 말이 많은데 너무 졸립다..

  • 내일도 잘 버텨보자.. 화이팅...

profile
BackEnd Developer

0개의 댓글