🔐
SecurityJwtLogin - 3 [기본 Model 생성]
December 02, 2022
SecurityJwtLogin - 3
[기본 Model 생성]
VO & DTO
- User : 사용자 Entity
- Token : Token Entity
- Authority : 권한 정보
- JwtResponseDto : 응답 DTO
User
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class User {
// 아이디
private String username;
// 패스워드
private String password;
// 유효한 유저
private boolean activated;
// 권한 리스트
private List<Authority> roles;
}
- 권한의 경우 여러 권한을 가질 수 있으니 위와 같이 Collection으로 관리합니다.
JwtResponse
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JwtResponse {
private String accessToken;
private String type="Bearer";
private String refreshToken;
private String username;
private List<String> roles;
// AccessToken + RefreshToken 발급 [ 최초 발급 시 ]
public JwtResponse(String accessToken, String refreshToken, String username, List<String> roles) {
this.accessToken = accessToken;
this.refreshToken = refreshToken;
this.username = username;
this.roles = roles;
}
// AccessToken 재발급 시
public JwtResponse(String accessToken, String refreshToken) {
this.accessToken = accessToken;
this.refreshToken = refreshToken;
}
}- 최초 발급 시 access token, refresh token 모두 발급해주고, 유저 아이디와 권한 정보를 함께 보내줬습니다.
- 토큰 외의 정보는 어떤 정보를 보내줄 것인가에 따라서 설정하면 됩니다.
- access token 재발급 시 토큰만 재발급해줬습니다.
🌈 모든 코드는 junhyxxn GitHub에서 확인할 수 있습니다!!