티스토리 뷰

TIL(Today I Learn)

WIL 5주차(Week I Learn)

minji_6119 2022. 6. 19. 18:54

 발제에서는 미니 프로젝트라 긴장하지 말고 쉬엄쉬엄 하라다던데 다들 잘하시고 욕심이 있으신 분들이다보니 결국 프로젝트 하는 기간에는 2시 넘어서 잤던 것 같다.

 프론트와 협업을 하면서 문제가 있었던게 로컬환경과 배포 환경이 다르다보니 문제가 발생한 구간을 찾는 게 정말 힘들었다. 프론트와의 커뮤니케이션도 중요했지만 백앤드 사이에서의 커뮤니케이션도 중요하다고 생각했다.

 프로젝트를 하면서 첫 번째 닥친 문제가 로컬 환경에서는 로그인이 되는데 프론트와 연결을 하려다보니 로그인이 전혀 안되는 문제였다. 이는 Spring 쪽에서 Spring Security가 기본적으로 제공하는 세션을 사용했던 것과 .formLogin()을 사용해 로그인을 시도했다는 점이었다. 

 

Spring Security CORS 설정

@Bean
public CorsConfigurationSource corsConfigurationSource() {
    CorsConfiguration configuration = new CorsConfiguration();
    configuration.addAllowedMethod("*");
    configuration.addAllowedHeader("*");
    configuration.addAllowedOriginPattern("http://amorossoprc.shop/"); // 배포 전 모두 허용
    configuration.setAllowCredentials(true);

    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", configuration);
    return source;
}

 formLogin() 설정은 application/json 을 지원하지 않는다. 따라서 시큐리티에서 formLogin을 하는 방식을 매니저님이 추천해주지 않았다. 따라서 우리는 Content-Type: application/json으로 보내는 방식을 사용하여 했지만 서버측에서 강제로 로그인을 진행하여 UsernamePassword 토큰을 만들어줬고, Authentication이 저장되며 생성된 JSESSIONID가 리스폰스 헤더의 Set-Cookie로 던져줬는데 프론트 서버에서 이를 적용해주지 않았다. 
부랴부랴 JWT를 세션스토리지에 저장하는 방식으로 변경했는데 진작 바꿀걸 그랬다.. 리액트와 협업하는 레퍼런스도 많아서 구현하기 수월했다. 사실 뭐 거의 배껴온 거긴 하지만.

그리고 OAuth2를 구현하면서 배포 환경에 적용하려다보니 Redirect URL을 계속 수정하면서 구현해야하는 어려움이 있었는데, 문제를 해결하기 위해 메인도메인에 서브도메인을 추가하여 작업을 진행했다. 이번 프로젝트에서도 비슷하게 진행하고 싶은데 도메인을 사용하지 않으려고 하셔서 어떻게 진행해야 할 지 모르겠다.

 

현재 프로젝트에서 하고 있는 고민은

 

1. 아이디를 이메일 형식으로 지정하고, UNIQUE 값으로 지정한 결과 OAuth로그인 유저(카카오/네이버/구글 아이디 중복 가능)를 어떻게 처리해야할 지 고민이다.

2. response에서 일반로그인은

위와 같이 보여주는데 소셜 로그인(OAuth2)은 

와 같이 access 토큰만 보내준다. username과 nickname을 추가해야할까 고민중

'TIL(Today I Learn)' 카테고리의 다른 글

TIL 220904  (0) 2022.09.04
WIL 6주차(Week I Learn)  (0) 2022.06.27
TIL 220609  (0) 2022.06.09
TIL 220606  (0) 2022.06.06
TIL 220603  (0) 2022.06.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함