diff --git a/src/front/src/api/authApi.js b/src/front/src/api/authApi.js index 09c16bf..7d8c14f 100644 --- a/src/front/src/api/authApi.js +++ b/src/front/src/api/authApi.js @@ -22,8 +22,18 @@ function currentUser(token) { }); } +function register(data) { + const { email, name, password } = data; + return axios({ + method: 'post', + url: '/api/auth/register', + data + }); +} + export default { login, - currentUser + currentUser, + register } \ No newline at end of file diff --git a/src/front/src/pages/auth/Login.vue b/src/front/src/pages/auth/Login.vue index efc9d31..cd4c447 100644 --- a/src/front/src/pages/auth/Login.vue +++ b/src/front/src/pages/auth/Login.vue @@ -13,7 +13,6 @@ + + \ No newline at end of file diff --git a/src/main/java/com/example/vue/domain/auth/AuthController.java b/src/main/java/com/example/vue/domain/auth/AuthController.java index b8de9d0..b2839b4 100644 --- a/src/main/java/com/example/vue/domain/auth/AuthController.java +++ b/src/main/java/com/example/vue/domain/auth/AuthController.java @@ -1,8 +1,11 @@ package com.example.vue.domain.auth; +import com.example.vue.domain.user.UserResponseDto; import lombok.RequiredArgsConstructor; -import org.springframework.security.core.Authentication; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; @@ -19,7 +22,7 @@ public class AuthController { } @PostMapping(value = "/register") - public void register() { - + public UserResponseDto register(@RequestBody @Valid RegisterRequestDto registerRequestDto) { + return authService.register(registerRequestDto); } } diff --git a/src/main/java/com/example/vue/domain/auth/AuthService.java b/src/main/java/com/example/vue/domain/auth/AuthService.java index a044d2f..8c0a70a 100644 --- a/src/main/java/com/example/vue/domain/auth/AuthService.java +++ b/src/main/java/com/example/vue/domain/auth/AuthService.java @@ -2,10 +2,12 @@ package com.example.vue.domain.auth; import com.example.vue.domain.user.User; import com.example.vue.domain.user.UserRepository; +import com.example.vue.domain.user.UserResponseDto; import com.example.vue.util.JwtUtil; import lombok.RequiredArgsConstructor; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; +import sun.jvm.hotspot.asm.Register; import java.util.List; @@ -35,4 +37,10 @@ public class AuthService { String token = jwtUtil.createToken(user.getId(), user.getName(), "USER"); return new LoginResponseDto(token); } + + public UserResponseDto register(RegisterRequestDto registerRequestDto) { + registerRequestDto.setPassword(bCryptPasswordEncoder.encode(registerRequestDto.getPassword())); + User user = userRepository.save(new User(registerRequestDto)); + return new UserResponseDto(user); + } } diff --git a/src/main/java/com/example/vue/domain/auth/RegisterRequestDto.java b/src/main/java/com/example/vue/domain/auth/RegisterRequestDto.java new file mode 100644 index 0000000..f8e760c --- /dev/null +++ b/src/main/java/com/example/vue/domain/auth/RegisterRequestDto.java @@ -0,0 +1,19 @@ +package com.example.vue.domain.auth; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class RegisterRequestDto { + + @NotNull + private String email; + + @NotNull + private String name; + + @NotNull + private String password; + +} diff --git a/src/main/java/com/example/vue/domain/user/User.java b/src/main/java/com/example/vue/domain/user/User.java index b010c57..98f94b3 100644 --- a/src/main/java/com/example/vue/domain/user/User.java +++ b/src/main/java/com/example/vue/domain/user/User.java @@ -1,5 +1,6 @@ package com.example.vue.domain.user; +import com.example.vue.domain.auth.RegisterRequestDto; import io.jsonwebtoken.Claims; import lombok.Getter; import lombok.NoArgsConstructor; @@ -46,4 +47,10 @@ public class User { this.role = claims.get("role").toString(); } + public User(RegisterRequestDto registerRequestDto) { + this.password = registerRequestDto.getPassword(); + this.email = registerRequestDto.getEmail(); + this.name = registerRequestDto.getName(); + } + }