Java/Spring
Spring boot #7
DGeon
2023. 5. 23. 09:10
- 4장
- AuthenticationPrincipal을 사용하고 SecurityContext에 등록한다
- 정리
- 사용자 관리를 위한 User레이어를 구현한다.
- 모든 요청마다 한 번씩 사용자를 인증하기 위해 스프링 시큐리티가 제공하는 onceperrequestfilter를 상속해 jwtauthenticationfilter를 작성 했고, websecurityconfigureradapter를 상속해 어떤 경로는 인증해야하고 어떤 경로는 인증하지 않아도 되는지 어느 지점에서 filter를 실행할지도 설정 한
- 5장(프론트엔드 통합)
- 로그인 후 백엔드 서비스에게 받은 토큰을 어딘가에 저장해 놓고 HTTP요청을 보낼때마다 헤더에 Bearer토큰으로 지정해줘야 한다. 로그인 후 토큰을 저장할 로컬 스토리지 저장하는 로직을 구현한다
- 터미널
- npm install react-router-dom
- 서버는 주소의 경로에 포함된 /login을 보고 login.html을 반환한다. 브라우저는 받은 login.html을 렌더링 하고 그 과정에서 웹페이지가 새로고침 된다. 이런 라우팅을 서버-사이드 라우팅이라고 한다. 스탠더드 라우팅 방법이 가작 익숙한 라우팅 방법 이다
- 클라이언트-사이드 라우팅
- 서버로 어떤 요청도 날리지 않는다 모든 라우팅은 클라이언트 코드, 자바스크립트가 해결한다
- BrowserRouter
- 브라우저가 관리하는 히스토리를 사용해 브라우저와 리액트 사이의 URL을 동기화하므로 그런 문제가 발생하지 않는다
- Routers
- 여러개의 Route를 관리하고 실제로 가장 적합한 Route를 찾아주는 컴포넌트이다
- Route
- 실제 경로를 지정해주기 위한 컴포넌트이다
- 로컬스토리지를 이용한 액세스 토큰 관리
- 어디엔가 엑세스 토큰을 저장하고, 백엔드 서비스에 HTTP 요청을 보낼때 이 토큰을 요청에 동봉해야 한다
- 로컬스토리지
- 세션스토리지는 브라우저가 닫히면 사라지지만 로컬스토리지는 브라우저를 닫아도 사라지지 않는다
- 도메인마다 따로 저장된다.
- 액세스 토큰 저장
- 로그인시 받은 토큰을 로컬 스토리지에 저장한다
- Key에 ACCESS_TOKEN을 value 에 넘겨 받은 토큰을 로컬 스토리지에 저장한다
- UI글리치
- 사용자게에 보이지 말아야할 항목들이다
- 7장(Oauth2.0)
- 서드파티/클라이언트
- 현재 애플리케이션이다
- 리소스
- 서드파티 애플리케이션이 접근하고자 하는 것이다
- 리소스 오너
- 리스너오너는 자연스럽게 사용자가 된다
- 제한된 액세스
- 서드파티 애플리케이션이 리소스오너(사용자)가 허락한 리소스에만 접근할 수 있도록 하겠다는 것이다
- 리소스 서버
- 리소스를 가지고 있는 서버이다
- 인가서버
- 서드파티/클라이언트