diff --git a/src/backend/signaling-server/src/main/java/com/asyncgate/signaling_server/signaling/KurentoManager.java b/src/backend/signaling-server/src/main/java/com/asyncgate/signaling_server/signaling/KurentoManager.java index 56469d97..f8c60d03 100644 --- a/src/backend/signaling-server/src/main/java/com/asyncgate/signaling_server/signaling/KurentoManager.java +++ b/src/backend/signaling-server/src/main/java/com/asyncgate/signaling_server/signaling/KurentoManager.java @@ -481,9 +481,10 @@ public void removeUser(final String roomId, final String userId) { // 사용자 정보 제거 userStates.remove(userId); - // 사용자 제거 이벤트 브로드캐스트 + log.info("유저가 방을 나가려고 합니다 ~~!!!!!! roomId={}, userId={}", roomId, userId); + // 예: 클라이언트 측에서 해당 사용자의 미디어 스트림 제거 처리를 수행하도록 알림 전송 - messagingTemplate.convertAndSend("/topic/removed/" + roomId, userId); + messagingTemplate.convertAndSend("/topic/removed/" + roomId, new KurentoAnswerResponse("userId", userId)); // 선택사항: 방이 비어있다면 미디어 파이프라인도 정리 if (roomEndpoints.get(roomId).isEmpty()) { diff --git a/src/backend/user-server/src/main/java/com/asyncgate/user_server/dto/response/DefaultJsonWebTokenResponse.java b/src/backend/user-server/src/main/java/com/asyncgate/user_server/dto/response/DefaultJsonWebTokenResponse.java index 996734d7..1a97801d 100644 --- a/src/backend/user-server/src/main/java/com/asyncgate/user_server/dto/response/DefaultJsonWebTokenResponse.java +++ b/src/backend/user-server/src/main/java/com/asyncgate/user_server/dto/response/DefaultJsonWebTokenResponse.java @@ -14,6 +14,11 @@ public class DefaultJsonWebTokenResponse { @NotBlank private final String userId; + @Schema(description = "유저 Nickname", example = "idididid") + @JsonProperty("nickname") + @NotBlank + private final String nickname; + @Schema(description = "JWT 토큰", example = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c") @JsonProperty("access_token") @NotBlank @@ -22,9 +27,11 @@ public class DefaultJsonWebTokenResponse { @Builder public DefaultJsonWebTokenResponse( String userId, + String nickname, String accessToken ) { this.userId = userId; + this.nickname = nickname; this.accessToken = accessToken; } } diff --git a/src/backend/user-server/src/main/java/com/asyncgate/user_server/security/utility/JsonWebTokenUtil.java b/src/backend/user-server/src/main/java/com/asyncgate/user_server/security/utility/JsonWebTokenUtil.java index b3d793be..0510b88e 100644 --- a/src/backend/user-server/src/main/java/com/asyncgate/user_server/security/utility/JsonWebTokenUtil.java +++ b/src/backend/user-server/src/main/java/com/asyncgate/user_server/security/utility/JsonWebTokenUtil.java @@ -32,9 +32,10 @@ public void afterPropertiesSet() { } // token 생성 메서드 - public DefaultJsonWebTokenResponse generate(final String id) { + public DefaultJsonWebTokenResponse generate(final String id, final String nickname) { return new DefaultJsonWebTokenResponse( id, + nickname, generateJwt(id, accessTokenExpirePeriod) ); } diff --git a/src/backend/user-server/src/main/java/com/asyncgate/user_server/service/LoginMemberService.java b/src/backend/user-server/src/main/java/com/asyncgate/user_server/service/LoginMemberService.java index 3a9f9c4f..f1557131 100644 --- a/src/backend/user-server/src/main/java/com/asyncgate/user_server/service/LoginMemberService.java +++ b/src/backend/user-server/src/main/java/com/asyncgate/user_server/service/LoginMemberService.java @@ -33,7 +33,7 @@ public DefaultJsonWebTokenResponse execute(final LoginMemberRequest request) { throw new UserServerException(FailType._INVALID_PASSWORD); } - DefaultJsonWebTokenResponse response = jsonWebTokenUtil.generate(member.getId()); + DefaultJsonWebTokenResponse response = jsonWebTokenUtil.generate(member.getId(), member.getNickname()); log.info(response.getAccessToken()); return response;