User 클래스 생성
@Getter
@NoArgsConstructor
@Entity
public class User extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String email;
@Column
private String picture;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private Role role;
@Builder
public User(String name, String email, String picture, Role role) {
this.name = name;
this.email = email;
this.picture = picture;
this.role = role;
}
public User update(String name, String picture) {
this.name = name;
this.picture = picture;
return this;
}
public String getRoleKey() {
return this.role.getKey();
}
}
Enum 클래스 Role 생성
각 사용자의 권한을 관리하는 용도이다.
@Getter
@RequiredArgsConstructor
public enum Role {
GUEST("ROLE_GUEST", "손님"),
USER("ROLE_USER", "일반 사용자");
private final String key;
private final String title;
}
스프링 시큐리티에서는 권한 코드에 항상 ROLE_이 앞에 있어야만
한다.
그래서 코드별 키 값을 ROLE_GUEST, ROLE_USER 등으로 지정한다.
UserRepository 생성
User의 CRUD를 책임진다.
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
}
findByEmail
- 소셜 로그인으로 반환되는 값 중 email을 통해 이미 생성된 사용자인지 처음 가입하는 사용자인지 판단하기 위한 메소드이다.
참고
'Spring' 카테고리의 다른 글
Http 상태코드에 따라 Error 페이지 처리하기 (0) | 2021.06.24 |
---|---|
[SpringSecurity] 구글 로그인 연동하기 5 - 스프링 시큐리티 설정 (0) | 2021.06.21 |
[SpringSecurity] 구글 로그인 연동하기 3 - .gitignore 등록 (0) | 2021.06.10 |
[SpringSecurity] 구글 로그인 연동하기 2 - application-oauth 등록 (0) | 2021.06.10 |
[SpringSecurity] 구글 로그인 연동하기 1 - 구글 서비스 등록 (1) | 2021.06.10 |
댓글