zoaseo
To Infinity And Beyond
zoaseo
전체 방문자
오늘
어제
  • 분류 전체보기 (763)
    • 개발이 좋아서 (381)
      • SAP가 좋아서 (3)
      • Java가 좋아서 (42)
      • Spring이 좋아서 (50)
      • JPA가 좋아서 (0)
      • QueryDSL이 좋아서 (26)
      • Docker가 좋아서 (7)
      • Redis가 좋아서 (7)
      • AWS가 좋아서 (5)
      • CI/CD가 좋아서 (6)
      • Troubleshooting이 좋아서 (4)
      • Kotlin이 좋아서 (7)
      • SQL이 좋아서 (6)
      • HTTP가 좋아서 (21)
      • JavaScript가 좋아서 (30)
      • TypeScript가 좋아서 (6)
      • Vue가 좋아서 (21)
      • Flutter가 좋아서 (61)
      • React가 좋아서 (20)
      • Redux(React)가 좋아서 (2)
      • Angular가 좋아서 (22)
      • HTML이 좋아서 (9)
      • CSS가 좋아서 (15)
      • PHP가 좋아서 (9)
      • Illustrator가 좋아서 (2)
    • 노력이 좋아서 (169)
    • 결과물이 좋아서 (14)
    • 코딩연습이 좋아서 (168)
      • 이론이 좋아서 (62)
      • SQL이 좋아서 (90)
    • 유용한 사이트가 좋아서 (28)
    • Github (2)

인기 글

티스토리

hELLO · Designed By 정상우.
zoaseo

To Infinity And Beyond

개발이 좋아서/Spring이 좋아서

[Backend] - 로그인 및 회원가입(로그인_dto, model, vo)

2022. 10. 25. 14:27

1) dto

SignInRes

package clonestudy.clonestudy.login.dto;

import lombok.Data;

@Data
public class SignInRes {

    private int id;

    private String name;

    private String accesstoken;

    private String refreshtoken;

    private String decodetoken;

}

ValidateJwt

package clonestudy.clonestudy.login.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ValidateJwt {
    @ApiModelProperty(hidden = true)
    private String id;

    @ApiModelProperty(hidden = true)
    private String hashCode;

    @ApiModelProperty(hidden = true)
    private List<String> managedSiteIds;

    public ValidateJwt(String id) {
        this.id = id;
    }

    public ValidateJwt(String id, String hashCode) {
        this.id = id;
        this.hashCode = hashCode;
    }
}

2) model

AccessToken

package clonestudy.clonestudy.login.model;

import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
import org.springframework.stereotype.Component;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.time.LocalDateTime;

@Component
@Getter
@NoArgsConstructor
@Entity
@Table(name = "access_token")

public class AccessToken {
    @Id
    @Column(name = "access_token", nullable = false, length = 300, unique = true)
    @Comment("사용자 jwt access_token")
    private String accessToken;

    @Builder
    public AccessToken(String accessToken) {
        this.accessToken = accessToken;
    }
}

LoginLog

package clonestudy.clonestudy.login.model;



/**로그인 로그 테이블**/

import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;

@Entity
@Table(name = "login_log")
@IdClass(LoginLog.ID.class)
@Data
@NoArgsConstructor
public class LoginLog {
    @Id
    @Column(name = "login_datetime", nullable = false, columnDefinition = "DATETIME DEFAULT NOW()")
    @Comment("로그인 요청 시간")
    private LocalDateTime loginDateTime;

    @Id
    @Column(name = "member_email", nullable = false, length = 30)
    @Comment("로그인 요청 email")
    private String memberEmail;

    @Column(name = "status_code", nullable = false, length = 10)
    @Comment("로그인 요청 결과 코드번호")
    private String statusCode;

    @Column(name = "status_code_name", nullable = false, length = 20)
    @Comment("로그인 요청 결과 코드명")
    private String statusCodeName;

    @Column(name = "status_message", nullable = false, length = 100)
    @Comment("로그인 요청 결과 메세지")
    private String statusMessage;

    @Column(name = "member_ip", nullable = false, length = 20)
    @Comment("로그인 요청 IP")
    private String memberIP;

    @Data
    public static class ID implements Serializable {
        private LocalDateTime loginDateTime;
        private String memberEmail;
    }

    @Builder
    public LoginLog(LocalDateTime loginDateTime, String memberEmail, String statusCode, String statusCodeName, String statusMessage, String memberIP){
        this.loginDateTime = loginDateTime;
        this.memberEmail = memberEmail;
        this.statusCode = statusCode;
        this.statusCodeName = statusCodeName;
        this.statusMessage = statusMessage;
        this.memberIP = memberIP;
    }
}

3) vo

LoginVO

package clonestudy.clonestudy.login.vo;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public class LoginLogVO {
    private String firstDateTime;
    private String endDateTime;
    private String memberEmail;
}

LoginVO

package clonestudy.clonestudy.login.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;

@Data
@AllArgsConstructor
public class LoginVO {
    @ApiModelProperty("이메일")
    private String email;

    @ApiModelProperty("비밀번호")
    private String pwd;
}

 

'개발이 좋아서 > Spring이 좋아서' 카테고리의 다른 글

[Backend] - 로그인 및 회원가입(회원가입_dto, model, vo)  (0) 2022.10.25
[Backend] - 로그인 및 회원가입(회원가입_service, repository)  (0) 2022.10.25
[Backend] - 로그인 및 회원가입(로그인_service, repository)  (0) 2022.10.25
[Backend] - 로그인 및 회원가입(swagger, share)  (0) 2022.10.25
회원 관리 예제 - 웹 MVC 개발  (0) 2022.10.07

    티스토리툴바