Repository files navigation SpringBoot Login 관련 기능 Study
Cookie를 사용한 로그인
Session을 사용한 로그인
Spring Security를 사용한 로그인 (Form Login)
Spring Security를 사용한 로그인 (Jwt Token API Login)
JWT + Cookie를 사용한 로그인 (Jwt Token Page Login)
OAuth 2.0 로그인 (구글)
회원가입 기능 구현
loginId, password, passwordCheck, nickname을 입력 받아 회원가입 진행
loginId와 nickname이 중복되면 회원가입 진행 X
password와 passwordCheck가 다르면 회원가입 진행 X
Thymeleaf, Validation을 사용한 Field Error 출력
회원가입 시 권한(role)은 "USER"로 설정
로그인 기능 구현
loginId, password를 입력 받아 로그인 진행
loginId가 존재하지 않거나 password가 틀렸으면 로그인 진행 X
Thymeleaf, Validation을 사용한 Global Error 출력 또는 로그인 페이지로 redirect
로그아웃 기능 구현
유저 정보 출력 기능 구현
인증(Authentication)된 유저만 접근 가능
유저의 loginId, nickname, role 출력
관리자 페이지 구현
인가(Authorization) 기능 구현
role이 "ADMIN"인 유저만 관리자 페이지 접근 가능
공통 화면 사용
모든 페이지는 공통으로 사용
화면에 로그인 방식 출력과 각각의 로그인에 맞는 URL 매핑을 위해 HTML 페이지에 loginType, pageName 전송
@ControllerAdvice를 활용하여 API 로그인이 아닌 경우에 URL을 통해 어떤 로그인 예제인지 체크 후 해당하는 loginType, pageName을 model에 담아 전송
로그인 성공 시 userId를 Cookie에 담아서 발급
인증, 인가가 필요한 페이지 접근 시 Cookie에서 userId를 꺼내 인증, 인가 진행
로그인 성공 시 HttpSession에 Session 생성 후 Key("userId"), Value(userId) 삽입
인증, 인가가 필요한 페이지 접근 시 Session에서 userId를 꺼내 인증, 인가 진행
세션 리스트 확인 기능 구현
Spring Security를 사용한 로그인 구현 (Form Login)
Spring Security의 BCryptPasswordEncoder을 사용한 비밀번호 암호화
SecurityConfig 설정을 통한 인증, 인가, 로그인, 로그아웃 진행
Spring Security의 로그인에 필요한 PrincipalDetails, PrincipalDetailsService 구현
authenticationEntryPoint을 사용한 인증 실패 페이지 출력 구현
accessDeniedHandler을 사용한 인가 실패 페이지 출력 구현
Spring Security를 사용한 로그인 구현 (Jwt Token Login)
JwtTokenFilter와 SecurityFilterChain을 사용해 Jwt Token Login 구현
JwtTokenUtil 기능
로그인 성고 시 Jwt Token 생성
인증, 인가 진행 시 Jwt Token에서 유저 정보 추출
Jwt Token의 유효 시간이 지났는지 체크
Security Form Login에서 사용한 SecurityConfig와 Jwt Token Login에서 사용한 SecurityConfig2 충돌 발생
둘 중 하나는 주석 처리를 통해 등록하지 않고 사용해야 함
Front-End 없이 JWT 방식으로 화면 로그인을 구현하기 위해 Cookie 사용
로그인 성공 시 Jwt Token 발급 => 쿠키에 넣어서 전송
인증, 인가 시 쿠키에서 Jwt Token을 추출해 인증, 인가 진행
로그아웃 시 쿠키 파기
구글, 카카오, 네이버, 페이스북 로그인 구현
Security Form 로그인 예제에 코드를 추가, 수정하며 구현
Google Api Client-Id, Client-Secret은 보안을 위해 환경변수로 등록
PrincipalOauth2UserService를 통해 OAuth 로그인 및 회원가입 진행
OAuth2UserInfo를 상속받은 GoogleUserInfo, KakaoUserInfo, NaverUserInfo, FacebookUserInfo 사용
About
버스타 Backend repo
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.