Skip to content

Commit

Permalink
[Refactor] : 카카오 로그인 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
NCOOL060580327 committed Feb 13, 2025
1 parent 0fe8d71 commit 605ab6d
Show file tree
Hide file tree
Showing 32 changed files with 450 additions and 467 deletions.
5 changes: 5 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,9 @@ dependencies {
//s3
implementation 'io.awspring.cloud:spring-cloud-aws-starter:3.1.1'
implementation 'software.amazon.awssdk:s3:2.20.40'

// oauth
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
}

tasks.named('test') {
Expand Down
23 changes: 11 additions & 12 deletions src/main/java/kdt/web_ide/boards/controller/BoardController.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import io.swagger.v3.oas.annotations.tags.Tag;
import kdt.web_ide.boards.dto.request.BoardSaveRequesetDto;
import kdt.web_ide.boards.dto.request.BoardUpdateRequestDto;
import kdt.web_ide.boards.dto.request.BoardUserInviteRequestDto;
import kdt.web_ide.boards.dto.response.BoardResponseDto;
import kdt.web_ide.boards.dto.response.BoardUserResponseDto;
import kdt.web_ide.boards.service.BoardService;
Expand Down Expand Up @@ -58,17 +57,17 @@ public ResponseEntity<String> deleteBoard(
return ResponseEntity.status(HttpStatus.OK).body("게시판이 삭제되었습니다.");
}

// 게시판 인원 초대
@Operation(summary = "게시판 멤버 초대 API", description = "이메일로 멤버를 초대합니다. 리더만 초대 가능합니다.")
@PostMapping("/{boardId}/invite")
public ResponseEntity<BoardUserResponseDto> inviteMember(
@PathVariable Long boardId,
@RequestBody @Valid BoardUserInviteRequestDto requestDto,
@AuthenticationPrincipal CustomUserDetails userDetails) {
BoardUserResponseDto invitedUser =
boardService.inviteMember(requestDto, boardId, userDetails.getMember());
return ResponseEntity.ok(invitedUser);
}
// // 게시판 인원 초대
// @Operation(summary = "게시판 멤버 초대 API", description = "이메일로 멤버를 초대합니다. 리더만 초대 가능합니다.")
// @PostMapping("/{boardId}/invite")
// public ResponseEntity<BoardUserResponseDto> inviteMember(
// @PathVariable Long boardId,
// @RequestBody @Valid BoardUserInviteRequestDto requestDto,
// @AuthenticationPrincipal CustomUserDetails userDetails) {
// BoardUserResponseDto invitedUser =
// boardService.inviteMember(requestDto, boardId, userDetails.getMember());
// return ResponseEntity.ok(invitedUser);
// }

// 게시판 인원 조회
@Operation(summary = "게시판 인원 조회 API", description = "해당 게시판의 모든 멤버를 조회합니다.")
Expand Down
41 changes: 20 additions & 21 deletions src/main/java/kdt/web_ide/boards/service/BoardService.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

import kdt.web_ide.boards.dto.request.BoardSaveRequesetDto;
import kdt.web_ide.boards.dto.request.BoardUpdateRequestDto;
import kdt.web_ide.boards.dto.request.BoardUserInviteRequestDto;
import kdt.web_ide.boards.dto.response.BoardResponseDto;
import kdt.web_ide.boards.dto.response.BoardUserResponseDto;
import kdt.web_ide.boards.entity.Board;
Expand Down Expand Up @@ -74,26 +73,26 @@ public void deleteBoard(Long boardId, Member member) {
}

// 게시판 인원 초대
@Transactional
public BoardUserResponseDto inviteMember(
BoardUserInviteRequestDto requestDto, Long boardId, Member currentMember) {
if (requestDto.getLoginId() == null || requestDto.getLoginId().isEmpty()) {
throw new CustomException(ErrorCode.INVALID_LOGINID);
}
// 존재하는 게시판인지 확인
Board thisBoard =
boardRepository
.findById(boardId)
.orElseThrow(() -> new CustomException(ErrorCode.BOARD_NOT_FOUND));
// 존재하는 멤버인지 확인
Member member =
memberRepository
.findByLoginId(requestDto.getLoginId())
.orElseThrow(() -> new CustomException(ErrorCode.USER_NOT_FOUND));
BoardUser newUser = requestDto.toEntity(thisBoard, member);
boardUserRepository.save(newUser);
return new BoardUserResponseDto(newUser);
}
// @Transactional
// public BoardUserResponseDto inviteMember(
// BoardUserInviteRequestDto requestDto, Long boardId, Member currentMember) {
// if (requestDto.getLoginId() == null || requestDto.getLoginId().isEmpty()) {
// throw new CustomException(ErrorCode.INVALID_LOGINID);
// }
// // 존재하는 게시판인지 확인
// Board thisBoard =
// boardRepository
// .findById(boardId)
// .orElseThrow(() -> new CustomException(ErrorCode.BOARD_NOT_FOUND));
// // 존재하는 멤버인지 확인
// Member member =
// memberRepository
// .findByLoginId(requestDto.getLoginId())
// .orElseThrow(() -> new CustomException(ErrorCode.USER_NOT_FOUND));
// BoardUser newUser = requestDto.toEntity(thisBoard, member);
// boardUserRepository.save(newUser);
// return new BoardUserResponseDto(newUser);
// }

// 게시판 인원 조회
@Transactional
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/kdt/web_ide/common/config/RestTemplateConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package kdt.web_ide.common.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {

@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
12 changes: 3 additions & 9 deletions src/main/java/kdt/web_ide/common/config/WebSecurityConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import org.springframework.web.cors.CorsConfiguration;
Expand All @@ -32,12 +30,6 @@ public class WebSecurityConfig {
private final JwtExceptionFilter jwtExceptionFilter;
private final CustomAccessDeniedHandler customAccessDeniedHandler;

// 비밀번호 암호화 방식 설정
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}

// 보안 설정
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
Expand All @@ -62,7 +54,9 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
"/v3/api-docs/**",
"/swagger-resources/**",
"/webjars/**",
"/health")
"/health",
"/kakao/**",
"/api/auth/login")
.permitAll()
.requestMatchers("/api/auth/**", "/chatting/**", "/api/chat/room")
.permitAll()
Expand Down
36 changes: 7 additions & 29 deletions src/main/java/kdt/web_ide/members/controller/MemberController.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,10 @@

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import kdt.web_ide.members.dto.request.JoinRequestDto;
import kdt.web_ide.members.dto.request.LoginRequestDto;
import kdt.web_ide.members.dto.request.RefreshTokenRequestDto;
import kdt.web_ide.members.dto.response.AccessTokenResponseDto;
import kdt.web_ide.members.dto.response.LoginResponseDto;
import kdt.web_ide.members.dto.response.MemberResponse;
import kdt.web_ide.members.dto.response.TokenResponse;
import kdt.web_ide.members.kakao.KakaoLoginParams;
import kdt.web_ide.members.kakao.KakaoReissueParams;
import kdt.web_ide.members.service.CustomUserDetails;
import kdt.web_ide.members.service.MemberService;
import lombok.RequiredArgsConstructor;
Expand All @@ -29,18 +27,10 @@ public class MemberController {

private final MemberService memberService;

// 회원가입
@PostMapping("/join")
public ResponseEntity<?> join(@RequestBody JoinRequestDto joinRequestDto) {
MemberResponse responseDto = memberService.signUp(joinRequestDto);
return ResponseEntity.status(HttpStatus.OK).body(responseDto);
}

// 로그인
@PostMapping("/login")
public ResponseEntity<?> login(@RequestBody LoginRequestDto loginRequestDto) {
LoginResponseDto memberResponse = memberService.login(loginRequestDto);
return ResponseEntity.status(HttpStatus.OK).body(memberResponse);
public ResponseEntity<?> login(@RequestBody KakaoLoginParams params) {
return ResponseEntity.status(HttpStatus.OK).body(memberService.login(params));
}

// 회원 정보 조회
Expand Down Expand Up @@ -73,21 +63,9 @@ public ResponseEntity<MemberResponse> updateNickName(
return ResponseEntity.status(HttpStatus.OK).body(updatedMember);
}

@Operation(summary = "로그인 아이디 수정 API")
@PatchMapping("/profile/login-id")
public ResponseEntity<MemberResponse> updateLoginId(
@RequestParam("loginId") String newLoginId,
@AuthenticationPrincipal CustomUserDetails userDetails) {
MemberResponse updatedMember = memberService.updateLoginId(newLoginId, userDetails.getMember());
return ResponseEntity.ok(updatedMember);
}

@Operation(summary = "엑세스 토큰 재발급 API")
@PostMapping("/refresh")
public ResponseEntity<AccessTokenResponseDto> recreateAccessToken(
@RequestBody RefreshTokenRequestDto requestDto) {
String accessToken = memberService.validateRefreshToken(requestDto.getRefreshToken());
AccessTokenResponseDto responseDto = new AccessTokenResponseDto(accessToken);
return ResponseEntity.status(HttpStatus.OK).body(responseDto);
public ResponseEntity<TokenResponse> recreateAccessToken(@RequestBody KakaoReissueParams params) {
return ResponseEntity.status(HttpStatus.OK).body(memberService.reissue(params));
}
}

This file was deleted.

48 changes: 0 additions & 48 deletions src/main/java/kdt/web_ide/members/dto/request/JoinRequestDto.java

This file was deleted.

13 changes: 0 additions & 13 deletions src/main/java/kdt/web_ide/members/dto/request/LoginRequestDto.java

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ public class LoginResponseDto {

private Long memberId;
private String nickName;
private String loginId;
private String profileImage;
private TokenResponse tokenResponse;

@Builder
public LoginResponseDto(Member member, TokenResponse tokenResponse) {
this.memberId = member.getMemberId();
this.nickName = member.getNickName();
this.loginId = member.getLoginId();
this.profileImage = member.getProfileImage();
this.tokenResponse = tokenResponse;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,12 @@
public class MemberResponse {
public MemberResponse(Member member) {
this.memberId = member.getMemberId();
this.loginId = member.getLoginId();
this.nickName = member.getNickName();
this.profileImage = member.getProfileImage();
}

private final Long memberId;

private final String loginId;
private final String nickName;

private final String profileImage;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,4 @@
public class TokenResponse {
String accessToken;
String refreshToken;

String key;
}
Loading

0 comments on commit 605ab6d

Please sign in to comment.