Search

소셜로그인 중복 허용 시 코드

상태
리팩토링
소유자
김시은
김시은
날짜
2023/09/04 → 2023/09/06
Related to 작업 (1) (프로젝트)
선행 작업
요약
작업 (1) (프로젝트)에 관계됨
작업 (1) (프로젝트)에 관계됨 1
후속 작업
2 more properties

프로젝트 정보

178
issues

nginx 프록시 패스 변경

포트번호가 다른 프로젝트를 같은 도메인을 쓰도록 하고 싶었습니다. 따라서 nginx 가 포트번호에 따라 요청을 알맞게 돌릴 수 있도록 변경하였는데요, 서버에 있는 8085 프로젝트에 해당하는 요청인경우 다음과 같은 응답헤더를 넣어줘야 합니다. "X-Route-To" : 8085 이는 필터를 만들어서 자동으로 붙이게 해놨으며, 파일은 CustomHeaderFilter.java 입니다.

토큰 인증 인가

공통

이제 이메일이 유일값이 아니기 때문에 유저를 멤버 아이디를 기준으로 찾아야 합니다. 따라서 그에따른 변경점이 생겼습니다.

토큰

레디스에 리프레시 토큰을 저장할 때, 키 값을 userId 로 변경
토큰에서 이메일을 뽑아 인증하는 경우가 있었는데요, 이는 userId 를 뽑아내는 것으로 변경하였습니다.
토큰을 뽑아내서 tokenUtil 의 getAuthenticationFromToken 메서도를 쓰면 알아서 인증까지 마치도록 변경하였습니다.
tokenUtil 의 불필요한 메서드는 제거하였습니다.
토큰은 유저 인덱스를 이용하여 만들었습니다.

웹소켓

웹소켓 토큰의 경우 겹치는 부분이 있어서 tokenUtil 에서 StompSessionHandlerAdapter 상속받았습니다.
아직 WebSocketUtil -> tokenUtil 로 고치는 작업을 안했는데, 고치면서 테스트 해보면 될것 같습니다!

유저 찾기

유저를 찾을때 이메일을 기준점으로 찾았으나 이제는 provider 도 같이 포함해야 합니다.
회원가입시 로컬 회원가입은 provider 가 local 이 되도록 변경하였습니다.
이제 특정 유저를 이메일만으로 찾을 수 없기 때문에 Authorization 헤더에 오는 토큰을 이용하여 유저 정보를뽑아내야 합니다. 토큰을 가져와서 유저인덱스를 얻고 이를 이용하여 멤버를 찾으면 됩니다. 때문에 컨트롤러에 HttpServeletRequest 부분이 추가되었습니다.

ValidatingService

웹소켓과 일반 요청은 헤더를 가져오는 방식이 다릅니다. 따라서 둘을 구분하였습니다.
일반요청 : HttpServeletRequest 에서 가져옴
웹소켓 : 컨트롤러에서 @Header("Authorization") 으로 바로 가져옴

ETC

변수명을 수정하고 코드를 좀더 간결하게 만들었습니다.
날잡아서 리팩토링 한번 가시죠...

프로젝트 작업

Search
시작 전
0
진행 중
0
완료
11