Teamproject -10

조형찬·2023년 5월 9일

TeamProject 일지

목록 보기
10/34

5.9. 팀프로젝트 진행상황

  • 스프링 시큐리티 회원가입, 로그인 기능 구현
  • 소셜로그인 중 카카오 로그인 기능 구현
  • 소셜로그인 중 네이버, 구글 기능 오류 발생
  • 로그인 페이지 개선

생각해볼만한 점

카카오 소셜 로그인을 눌렀을 때 '동의하고 계속하기'버튼이 나온다.
로그인과 함께 누르면 회원 정보 저장과 동시에 로그인처리가 된다.(중복된 이메일이 없을 때)
기본 비밀번호는 1111로 준 상태라서 바로 비밀번호 변경 페이지로 이동시킨다.
카카오 로그인이 아닌 일반 로그인을 하려면 아이디(이메일)와 1111비밀번호로 로그인이 불가능하다. (social=true기 때문)
그래서 비밀번호를 바꿀 때 social=false로 바꾸면서 일반 회원으로 로그인 할 수 있도록 바꿔준다.

그런데 어차피 카카오 로그인을 누르면 로그인이 되는데 이때 social=true로 그냥 해도 되지 않나 싶기도 했다. 그러나 그럴경우 사용자의 비밀번호는 1111로 고정이 되는것이라서 보안에 취약해진다. 사용자가 비밀번호를 바꾸도록 유도하려면 로그인이 안되게 하는것이 맞는 것 같다.

일반 로그인으로 회원가입한 회원이 1이라는 이메일로 등록되어있으면, 소셜로그인 이메일이 1일때 바로 로그인 된다.
그러나 소셜 로그인 이메일이 1인 사람이 로그인하고 일반 회원가입으로 이메일을 1로 하면 회원가입은 된다. 그러나 이메일이 1인 회원이 둘이 되므로 문제가 있어서 수정이 필요하다.


스프링 시큐리티 흐름 정리

member 클래스는 oracledb에 있는 Member table과 같다.
memberJoinDTO 클래스는 회원가입 할 때 쓰이는 객체들을 담고 있다.
memberSecurityDTO는 로그인할 때 입력한 정보들이 맞는지 확인할 수 있는 객체들을 담고 있다.

securityConfig는 설정 정보를 담고 있다. 객체를 주입할 수 있도록 Bean등록도 담당하고 있다.
Custom403Handler는 error에 대한 처리를 담당하고 있다.
CustomSocialLoginSuccessHandler 는 소셜 로그인 성공에 대한 처리를 담당하고 있다.
CustomOAuth2UserService는 소셜 로그인 과정에 대한 처리를 담당하고 있다.
CustomUserDetailService는 일반 로그인 과정에 대한 처리를 담당하고 있다.

MemberRepository는 JpaRepository를 확장하여 각종 쿼리문을 담당하고 있다.
MemberServiceImpl은 회원가입의 과정에 대한 처리를 담당하고 있다.


내일 해야할 것

  • 소셜 로그인 네이버, 구글 포함하여 완성하기
  • 이메일 중복 회원가입 관련 수정
profile
서버개발 공부중

0개의 댓글