-
Notifications
You must be signed in to change notification settings - Fork 3
[feat] Kakao OAuth 회원가입, 로그인, 로그아웃 기능 #24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feat] Kakao OAuth 회원가입, 로그인, 로그아웃 기능 #24
Conversation
silver-eunjoo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다 ! 혹시 현재 로그인한 유저의 id를 가져올 수 있게 UserDetails의 principal의 id를 꺼내올 수 있는 메서드도 구현해주실 수 있으실까요?
public Long getUserId() {
return user.getId();
}
public String getUserNickname() {
return user.getNickname();
}UserPrincipal에 해당 메서드 추가해뒀습니다 ! |
| new UsernamePasswordAuthenticationToken( | ||
| userPrincipal, null, userPrincipal.getAuthorities()); | ||
| SecurityContextHolder.getContext().setAuthentication(authentication); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[L4-변경제안]
여기서 User 엔티티대신 User에서 필요한 부분만 분리해서 dto로 변경한다음에 넣어주는건 어떨까요?
User 엔티티 전체를 넣어서 principal을 생성하면 provider, providerId, lastLogin같은 불필요한 정보들이 모두 포함되어있을 필요는 없다고 생각됩니다.
그리고 User라는게 엔티티이다보니 영속성 대상이 되는것도 . . 뭔가 꼬이지 않을까요 (?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
다른 분들이 UserPrincipal을 읽어와서 각자 맡은 기능을 구현하실 때, 구체적으로 어떤 필드가 필요할 지 몰라서 분리를 안하고 user 전체를 넣었습니다 ! 그래서 각자 맡은 부분에 대한 초기 PR이 올라오면 그것을 보고 mapper 변환 작업 진행하면서 같이 분리해보겠습니다 👍
닉네임 수정 API를 아직 구현하지 않아서 생각하지 못한 부분이네요,,, 말씀대로 User 값이 변경되는 코드를 수행한 후에는 현재는 user 전체를 저장하기 때문에 다시 메서드를 호출해서 권한을 세팅해줘야 할 것 같습니다.
다른 분들이 작업하시는 코드 보고 달아주신 리뷰 반영해보겠습니다 !
[L4-변경제안] 혹시 이렇게 사용하면 어떻게 사용해야 하나요? 지금까지는 SecurityContextHolder에서 꺼내쓰는 방식으로만 구현해봤어서요 !! UserPrincipal을 컨트롤러에서 |
|
|
||
| String nickname = signupRequest.nickname(); | ||
| validateNickname(nickname); | ||
| validateDuplicateNickname(nickname); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[L5-참고의견]
validateDuplicateNickname 메서드는 validateNickname 내부에 위치시켜도 좋을 것 같습니다.
|
|
||
| private void validateDuplicateNickname(String nickname) { | ||
| if (userRepository.existsUserByNickname(nickname)) { | ||
| throw new RuntimeException("닉네임 중복"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[L5-참고의견]
닉네임 중복은 E409001 에러코드가 존재하는 것으로 확인됩니다.
넵 말씀하신대로 util 메서드를 추가하면 |
LimKangHyun
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다!
sehee123
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다. 🙌
* ✨ feat: 웹소켓 config 파일 생성 * ✨ 웹소켓 config 파일 생성 * chore: Java 스타일 수정 * ♻️ refactor:sockJS 제거 --------- Co-authored-by: github-actions <> * ✨ feat: GitHub Action 자동 Release 추가 (prgrms-web-devcourse-final-project#8) * ✨ feat: GitHub Action 자동 테스트 추가 (prgrms-web-devcourse-final-project#10) * fix: Test DB 미등록으로 인한 테스트 실패 문제 해결 * feat: test workflow 등록 * fix: build.gradle tab 문자 적용 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <> * ✨ feat: SSE 기본 연결 기능 구현 (prgrms-web-devcourse-final-project#11) * ✨ feat: SSE 기본 기능 구현 * chore: Java 스타일 수정 * 🚚 rename: SSE 관련 파일 패키지 구분 추가 * chore: Java 스타일 수정 * 🗑️ remove: SSE 관련 중복 파일 삭제 --------- Co-authored-by: github-actions <> * ✨ feat: 게임 방 생성 구현 * ✨ feat: 게임 방 생성 구현 * ✨ feat: repository, service 책임 분리, mapper추가 * chore: Java 스타일 수정 * ♻️ 리뷰 반영 수정 * chore: Java 스타일 수정 * 🩹 컨트롤러 import 추가 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <> * ✨ feat: 게임 방 전체 목록 조회 구현 * 🔧 chore: Quiz, User에 @Getter 및 임시 @Setter 추가 * chore: Java 스타일 수정 * ✨ feat: 룸 목록 조회 응답 DTO(RoomListResponse) 추가 - RoomResponse 추가 * chore: Java 스타일 수정 * ✨ feat: 룸 전체 조회 API 구현 * chore: Java 스타일 수정 * ✅ test: 룸 전체 조회 리포지토리 테스트 추가 * chore: Java 스타일 수정 * ♻️ 리뷰 반영 수정 - RoomService의 RoomMapper를 static import로 변경 - roomResponse DTO의 title을 roomName으로 변경 --------- Co-authored-by: github-actions <> * ✨ feat : 퀴즈 생성 기능 구현 * ✨ feat : 게임 방 입장(+유효성 검증) 구현 * ✨ 게임 방 입장(+유효성 검증) 구현 * ♻️ 누락 import 추가 * ♻️ 클라이언트 send시 로그 추가 * chore: Java 스타일 수정 * ♻️ PR 리뷰 반영 * chore: Java 스타일 수정 * 🔥 refactor: validationResponse삭제 no content로 응답 변경으로 인한 응답 dto 삭제 * ♻️ PR 리뷰 반영-2 * ♻️ PR 리뷰 반영-2 * ✨ 유효성 체크 요청시 validation 어노테이션 추가 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <> * [feat] Kakao OAuth 회원가입, 로그인, 로그아웃 기능 (prgrms-web-devcourse-final-project#24) * 🔧 chore: Kakao OAuth 기능 관련 설정 * ✨ feat: Kakao Oauth 회원가입, 로그인, 로그아웃 구현 * chore: Java 스타일 수정 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <> * feat: Github Action 자동 도커 이미지 빌드 추가 (#1) --------- Co-authored-by: hwangsehee <[email protected]> Co-authored-by: kanghyun <[email protected]> Co-authored-by: Lee Eunjoo (Silver) <[email protected]> Co-authored-by: Jiwon Kwak <[email protected]>
* ✨ feat: 웹소켓 config 파일 생성 * ✨ 웹소켓 config 파일 생성 * chore: Java 스타일 수정 * ♻️ refactor:sockJS 제거 --------- Co-authored-by: github-actions <> * ✨ feat: GitHub Action 자동 Release 추가 (prgrms-web-devcourse-final-project#8) * ✨ feat: GitHub Action 자동 테스트 추가 (prgrms-web-devcourse-final-project#10) * fix: Test DB 미등록으로 인한 테스트 실패 문제 해결 * feat: test workflow 등록 * fix: build.gradle tab 문자 적용 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <> * ✨ feat: SSE 기본 연결 기능 구현 (prgrms-web-devcourse-final-project#11) * ✨ feat: SSE 기본 기능 구현 * chore: Java 스타일 수정 * 🚚 rename: SSE 관련 파일 패키지 구분 추가 * chore: Java 스타일 수정 * 🗑️ remove: SSE 관련 중복 파일 삭제 --------- Co-authored-by: github-actions <> * ✨ feat: 게임 방 생성 구현 * ✨ feat: 게임 방 생성 구현 * ✨ feat: repository, service 책임 분리, mapper추가 * chore: Java 스타일 수정 * ♻️ 리뷰 반영 수정 * chore: Java 스타일 수정 * 🩹 컨트롤러 import 추가 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <> * ✨ feat: 게임 방 전체 목록 조회 구현 * 🔧 chore: Quiz, User에 @Getter 및 임시 @Setter 추가 * chore: Java 스타일 수정 * ✨ feat: 룸 목록 조회 응답 DTO(RoomListResponse) 추가 - RoomResponse 추가 * chore: Java 스타일 수정 * ✨ feat: 룸 전체 조회 API 구현 * chore: Java 스타일 수정 * ✅ test: 룸 전체 조회 리포지토리 테스트 추가 * chore: Java 스타일 수정 * ♻️ 리뷰 반영 수정 - RoomService의 RoomMapper를 static import로 변경 - roomResponse DTO의 title을 roomName으로 변경 --------- Co-authored-by: github-actions <> * ✨ feat : 퀴즈 생성 기능 구현 * ✨ feat : 게임 방 입장(+유효성 검증) 구현 * ✨ 게임 방 입장(+유효성 검증) 구현 * ♻️ 누락 import 추가 * ♻️ 클라이언트 send시 로그 추가 * chore: Java 스타일 수정 * ♻️ PR 리뷰 반영 * chore: Java 스타일 수정 * 🔥 refactor: validationResponse삭제 no content로 응답 변경으로 인한 응답 dto 삭제 * ♻️ PR 리뷰 반영-2 * ♻️ PR 리뷰 반영-2 * ✨ 유효성 체크 요청시 validation 어노테이션 추가 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <> * [feat] Kakao OAuth 회원가입, 로그인, 로그아웃 기능 (prgrms-web-devcourse-final-project#24) * 🔧 chore: Kakao OAuth 기능 관련 설정 * ✨ feat: Kakao Oauth 회원가입, 로그인, 로그아웃 구현 * chore: Java 스타일 수정 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <> * feat: Github Action 자동 도커 이미지 빌드 추가 (#1) * Feat/22 (#3) * feat: Github Action 자동 도커 이미지 빌드 추가 * fix: next version으로 이미지 태그 생성 --------- Co-authored-by: hwangsehee <[email protected]> Co-authored-by: kanghyun <[email protected]> Co-authored-by: Lee Eunjoo (Silver) <[email protected]> Co-authored-by: Jiwon Kwak <[email protected]>
🛰️ Issue Number
🪐 작업 내용
📚 Reference
✅ Check List