diff --git a/src/main/java/org/example/siljeun/domain/auth/dto/request/SignUpRequest.java b/src/main/java/org/example/siljeun/domain/auth/dto/request/SignUpRequest.java index b2008b0..9779011 100644 --- a/src/main/java/org/example/siljeun/domain/auth/dto/request/SignUpRequest.java +++ b/src/main/java/org/example/siljeun/domain/auth/dto/request/SignUpRequest.java @@ -6,6 +6,7 @@ public record SignUpRequest(String email, String username, String password, + String name, String nickname, Role role, Provider provider) { diff --git a/src/main/java/org/example/siljeun/domain/auth/service/AuthService.java b/src/main/java/org/example/siljeun/domain/auth/service/AuthService.java index 06e35fc..98cbc21 100644 --- a/src/main/java/org/example/siljeun/domain/auth/service/AuthService.java +++ b/src/main/java/org/example/siljeun/domain/auth/service/AuthService.java @@ -1,5 +1,6 @@ package org.example.siljeun.domain.auth.service; +import java.util.NoSuchElementException; import lombok.RequiredArgsConstructor; import org.example.siljeun.domain.auth.dto.request.SignUpRequest; import org.example.siljeun.domain.auth.dto.response.LoginResponse; @@ -22,6 +23,7 @@ public SignUpResponse signUp(SignUpRequest request) { // 비밀번호 암호화 String password = passwordEncoder.encode(request.password()); + // 회원 생성 및 저장 User user = new User(request.email(), request.username(), password, request.nickname(), request.role(), request.provider()); User savedUser = userRepository.save(user); @@ -29,7 +31,16 @@ public SignUpResponse signUp(SignUpRequest request) { return new SignUpResponse(savedUser.getId(), savedUser.getEmail(), savedUser.getUsername()); } - public LoginResponse login(String username, String password) { + public LoginResponse login(String username, String rawPassword) { + // 회원이 존재하지 않는 경우 + User user = userRepository.findByUsername(username) + .orElseThrow(() -> new NoSuchElementException("아이디 또는 비밀번호가 올바르지 않습니다.")); + + // 비밀번호가 틀린 경우 + if (!passwordEncoder.matches(rawPassword, user.getPassword())) { + throw new RuntimeException("아이디 또는 비밀번호가 올바르지 않습니다."); + } + String token = jwtUtil.createToken(username); return new LoginResponse(token); diff --git a/src/main/java/org/example/siljeun/domain/user/entity/User.java b/src/main/java/org/example/siljeun/domain/user/entity/User.java index ddb0653..14ec94f 100644 --- a/src/main/java/org/example/siljeun/domain/user/entity/User.java +++ b/src/main/java/org/example/siljeun/domain/user/entity/User.java @@ -34,6 +34,9 @@ public class User extends BaseEntity { @Column(nullable = false, length = 255) private String password; + @Column(nullable = false, length = 10) + private String name; + @Column(nullable = false, length = 10) private String nickname; diff --git a/src/main/java/org/example/siljeun/global/config/SecurityConfig.java b/src/main/java/org/example/siljeun/global/config/SecurityConfig.java index bc85fd6..9afd186 100644 --- a/src/main/java/org/example/siljeun/global/config/SecurityConfig.java +++ b/src/main/java/org/example/siljeun/global/config/SecurityConfig.java @@ -14,7 +14,6 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import org.springframework.stereotype.Component; @Configuration @EnableWebSecurity