Skip to content
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

로그인 응답 변경 #341

Merged
merged 4 commits into from
Aug 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.springframework.web.bind.annotation.RestController;

import codezap.member.dto.LoginRequest;
import codezap.member.dto.LoginResponse;
import codezap.member.dto.MemberDto;
import codezap.member.dto.SignupRequest;
import codezap.member.service.MemberService;
Expand Down Expand Up @@ -48,7 +49,7 @@ public void checkUniqueUsername(@RequestParam String username) {

@PostMapping("/login")
@ResponseStatus(HttpStatus.OK)
public void login(@Valid @RequestBody LoginRequest request, HttpServletResponse response) {
public LoginResponse login(@Valid @RequestBody LoginRequest request, HttpServletResponse response) {
MemberDto member = memberService.login(request);
String basicAuth = HttpHeaders.encodeBasicAuth(member.email(), member.password(), StandardCharsets.UTF_8);
ResponseCookie cookie = ResponseCookie.from(HttpHeaders.AUTHORIZATION, basicAuth)
Expand All @@ -59,6 +60,7 @@ public void login(@Valid @RequestBody LoginRequest request, HttpServletResponse
.httpOnly(true)
.build();
response.setHeader(HttpHeaders.SET_COOKIE, cookie.toString());
return new LoginResponse(member.id(), member.username());
}

@GetMapping("/login/check")
Expand All @@ -67,7 +69,6 @@ public void checkLogin(HttpServletRequest request) {
memberService.checkLogin(request.getCookies());
}


@PostMapping("/logout")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void logout(HttpServletResponse response) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import codezap.global.swagger.error.ProblemDetailSchema;
import codezap.member.dto.LoginRequest;
import codezap.member.dto.LoginResponse;
import codezap.member.dto.SignupRequest;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.headers.Header;
Expand Down Expand Up @@ -297,7 +298,7 @@ public interface SpringDocMemberController {
}
)
)
void login(LoginRequest request, HttpServletResponse response);
LoginResponse login(LoginRequest request, HttpServletResponse response);

@Operation(summary = "이메일 로그인 후 쿠키 인증")
@ApiResponse(responseCode = "200", description = "쿠키 인증 성공")
Expand Down
7 changes: 7 additions & 0 deletions backend/src/main/java/codezap/member/dto/LoginResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package codezap.member.dto;

public record LoginResponse(
long memberId,
String username
) {
}
10 changes: 0 additions & 10 deletions backend/src/main/java/codezap/member/service/MemberService.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,4 @@ public void assertUniqueUsername(String username) {
throw new CodeZapException(HttpStatus.CONFLICT, "사용자명이 이미 존재합니다.");
}
}

public void validateMemberId(MemberDto memberDto, Long memberId) {
if (!memberId.equals(memberDto.id())) {
throw new CodeZapException(HttpStatus.UNAUTHORIZED, "다른 사람의 템플릿은 확인할 수 없습니다.");
}

if (!memberRepository.existsById(memberId)) {
throw new CodeZapException(HttpStatus.UNAUTHORIZED, "로그인 정보가 잘못되었습니다.");
}
}
}