✍🏻 진행중 Lamb
외부 API를 활용한 실제로 이용 가능한 서비스
📈 주요 학습 목표
- 🔥 Spring Security를 이용한 보안 기능 개선
- 🔥 Thymeleaf 활용
- ⏱️ 네이버 검색 API 활용
- ✔ 네이버 아이디로 로그인 + ✔ 구글, 깃헙, 페북, 카카오
-
📋 account
-
login
-
form login
- bind Thymeleaf form
- password encrypt
- put BCryptPasswordEncoder
- save in database
- set Member Entity
-
social login- naver, kakao
- copy CommonOAuth2Provider.GOOGLE
- adjust to fit naver
- override ClientRegistrationRepository
- put on configure
- override OAuth2UserService
- put on endpoint
- copy CommonOAuth2Provider.GOOGLE
- google, github, facebook
- use plain CommonOAuth2Provider
⚠️ google doesn't through OAuth2UserService- 🙊 google through OidcUserService
- ✔️override OidcUserService
- 🙊 google through OidcUserService
- naver, kakao
-
remember me- load Member
- override UserDetailsService
- save token
- use JdbcTokenRepositoryImpl
- set database in
- use JdbcTokenRepositoryImpl
- load Member
-
override CustomLoginSuccessHandler
- set on configure
-
-
logout
- clear session, authentication, cookies
-
update info
- bind Thymeleaf form
- validate member information
-
change password
- bind Thymeleaf form
-
sign out
- bind Thymeleaf form
- delete Member Entity
- clear session
- revoke Member Authentication
-
validator
- register
- update
- change password
- sign out
-
-
📋 Board
- create
- update, delete
- identify origin memberId
display Board list- search
- JPA Repository
- pageable
- JPA Ropesitory
- Thymeleaf form set
- search
-
📋📌🔥 Post
- 🔥 create
- update, delete
- identify origin memberId
display Post list- search
- JPA Repository
- pageable
- JPA Repository
- Thymeleaf form set
- search
-
📋 Reply
- create
- update, delete
- identify origin memberId
-
📋 Naver Search API
에러 메시지가 제대로 출력되지 않고 있었다
- 🔥 add validator
- 🔥 fix forms and controllers
- 🔥 add a basic reply feature
- ⏱ add "Search" form
- ⏱ apply naver search API on "Search" form
시간 가는줄 모르겠다
- 🔥 add a basic reply feature
- ⏱ add "Search" form
- ⏱ apply naver search API on "Search" form
소셜 로그인에 시간을 너무 많이 쏟았다
깃을 좀 더 활용 하자
- ✔ change password
- ✔ sign out
- ✔ Board
역시 영어가 굉장히 중요한것 같다
- ✔ make the "Board" works
- 🔥 add a basic reply feature
- ⏱ add "Search" form
- ⏱ apply naver search API on "Search" form
Spring Security 구조에 대해 알면 알수록 해보고 싶은게 많아진다
- ⛔
기존 계정을 소셜 계정과 연동소셜계정의 권한을 GUEST로 변경로그인 성공 지점에서 계정 권한확인USER 등급의 권한 이상 일 때 : 동작 없음GUEST 등급의 권한 이하 일 때 : 아이디 패스워드 입력
문득 그럼 그냥 기존 계정 회원가입과 다름이 없다는 생각이 들었다
차라리 기존 계정과 소셜 계정을 따로 나누지 말고 통합관리 하는게 더 편할 것
- ✔ 계정에 활동 닉네임을 추가해서 관리
- ✔ add (String)nickname on Member Entity
- ✔ add size and unique validation of nickname column
- ✔ make a form named "update" that updates Member information
- ✔ bind the form
- ⛔
check the Member has nickname after authenticated with social loginhasNickname : pass!hasNickname : locate to "MemberInfoUpdate" form
- ✔ init nickname same value with username value when user sign up
Done today...
- 🔥 make the "Board" works
- ⏱ add a basic reply feature
- ⏱ add "Search" form
- ⏱ apply naver search API on "Search" form
