[인프라] - Docker Compose 구성 (DB, Redis, MinIO) - Spring Boot 3.5.9 + Kotlin + Gradle 설정 [인증/보안] - Spring Security 및 JWT 필터 설정 - RTR(Refresh Token Rotation) 방식의 토큰 재발급 로직 구현 - Redis를 활용한 Refresh Token 및 이메일 인증 코드 관리 [기능 구현] - 회원가입 (이메일 인증 포함) - 로그인/로그아웃/토큰재발급 API 구현 - 공통 응답(ApiResponse) 및 전역 예외 처리(GlobalExceptionHandler) 적용
37 lines
726 B
Kotlin
37 lines
726 B
Kotlin
package me.wypark.blogbackend.domain.user
|
|
|
|
import jakarta.persistence.*
|
|
import me.wypark.blogbackend.domain.common.BaseTimeEntity
|
|
|
|
@Entity
|
|
@Table(name = "member")
|
|
class Member(
|
|
@Column(nullable = false, unique = true)
|
|
val email: String,
|
|
|
|
@Column(nullable = false)
|
|
var password: String,
|
|
|
|
@Column(nullable = false)
|
|
var nickname: String,
|
|
|
|
@Enumerated(EnumType.STRING)
|
|
@Column(nullable = false)
|
|
val role: Role,
|
|
|
|
@Column(nullable = false)
|
|
var isVerified: Boolean = false
|
|
) : BaseTimeEntity() {
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
val id: Long? = null
|
|
|
|
fun verify() {
|
|
this.isVerified = true
|
|
}
|
|
}
|
|
|
|
enum class Role {
|
|
ROLE_USER, ROLE_ADMIN
|
|
} |