Skip to content

Commit 04d6cb3

Browse files
authored
로그인 response에 userId, groupId 추가
로그인 response에 userId, groupId 추가
2 parents 1758a8f + 690ddef commit 04d6cb3

4 files changed

Lines changed: 45 additions & 9 deletions

File tree

‎src/main/java/com/okagaka/OkaGaka/domain/user/controller/AuthController.java‎

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,20 @@ public class AuthController {
1818
@PostMapping("/login")
1919
public ResponseEntity<ApiResponse<LoginResponse>> login(@RequestBody LoginRequest request) {
2020
System.out.println("요청 들어옴: name=" + request.getName() + ", phone=" + request.getPhoneNumber());
21-
String token = userService.login(request.getName(), request.getPhoneNumber());
22-
return ResponseEntity.ok(ApiResponse.success(new LoginResponse(token)));
21+
// String token = userService.login(request.getName(), request.getPhoneNumber());
22+
// return ResponseEntity.ok(ApiResponse.success(new LoginResponse(token)));
23+
// 1. UserService로부터 3가지 정보가 담긴 LoginResult 객체를 받음
24+
UserService.LoginResult loginResult = userService.login(request.getName(), request.getPhoneNumber());
25+
26+
// 2. LoginResult 객체의 정보로 최종 응답 객체인 LoginResponse를 생성
27+
LoginResponse response = new LoginResponse(
28+
loginResult.token(),
29+
loginResult.userId(),
30+
loginResult.groupId()
31+
);
32+
33+
// 3. 성공 응답 반환
34+
return ResponseEntity.ok(ApiResponse.success(response));
2335
}
2436
}
2537

‎src/main/java/com/okagaka/OkaGaka/domain/user/dto/LoginResponse.java‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
import lombok.*;
55

66
@Getter
7-
@AllArgsConstructor
7+
//@AllArgsConstructor
8+
@RequiredArgsConstructor
89
public class LoginResponse {
9-
private String accessToken;
10+
private final String accessToken;
11+
private final Long userId;
12+
private final Long groupId;
1013
}

‎src/main/java/com/okagaka/OkaGaka/domain/user/service/UserService.java‎

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,33 @@ public class UserService {
1616
private final UserRepository userRepository;
1717
private final JwtTokenProvider jwtTokenProvider;
1818

19-
public String login(String name, String phoneNumber) {
20-
System.out.println(phoneNumber);
19+
// 1. 반환 타입을 위한 record 정의 (UserService 내부에 선언하거나 별도 파일로 생성 가능)
20+
public record LoginResult(String token, Long userId, Long groupId) {}
21+
22+
// 2. login 메소드 수정
23+
public LoginResult login(String name, String phoneNumber) {
2124
User user = userRepository.findByNameAndPhoneNumber(name, phoneNumber)
2225
.orElseThrow(() -> new CustomException(ErrorCode.USER_NOT_FOUND));
2326

24-
return jwtTokenProvider.createToken(user.getId(), user.getName());
27+
// 토큰 생성
28+
String token = jwtTokenProvider.createToken(user.getId(), user.getName());
29+
30+
// userId 추출
31+
Long userId = user.getId();
32+
33+
// groupId 추출 (그룹이 없을 경우 null 처리)
34+
Long groupId = (user.getFamilyGroup() != null) ? user.getFamilyGroup().getId() : null;
35+
36+
// 모든 정보를 담은 LoginResult 객체 반환
37+
return new LoginResult(token, userId, groupId);
2538
}
39+
40+
// public String login(String name, String phoneNumber) {
41+
// System.out.println(phoneNumber);
42+
// User user = userRepository.findByNameAndPhoneNumber(name, phoneNumber)
43+
// .orElseThrow(() -> new CustomException(ErrorCode.USER_NOT_FOUND));
44+
//
45+
// return jwtTokenProvider.createToken(user.getId(), user.getName());
46+
// }
2647
}
2748

‎src/main/resources/static/stomp_test2.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ <h1>WebSocket Location Test</h1>
4040

4141
<script>
4242
let stompClient = null;
43-
const WS_URL = 'ws://localhost:8080/ws-location';
43+
const WS_URL = 'ws://13.209.57.96:8080/ws-location';
4444
const TOPIC_PREFIX = '/topic/group/';
4545
const APP_PREFIX = '/app/location/update';
4646

@@ -67,7 +67,7 @@ <h1>WebSocket Location Test</h1>
6767
log('✅ Connected: ' + frame);
6868

6969
// 구독할 그룹 ID를 사용자에게 입력받거나, 테스트용으로 고정
70-
const groupId = 1;
70+
const groupId = 2;
7171
stompClient.subscribe(TOPIC_PREFIX + groupId, function(message) {
7272
const locationData = JSON.parse(message.body);
7373
log(`Received location update for group ${groupId}: User ${locationData.userId}, Lat: ${locationData.latitude}, Lng: ${locationData.longitude}`);

0 commit comments

Comments
 (0)