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)
    • 서드파티/클라이언트
      • 현재 애플리케이션이다
    • 리소스
      • 서드파티 애플리케이션이 접근하고자 하는 것이다
    • 리소스 오너
      • 리스너오너는 자연스럽게 사용자가 된다
    • 제한된 액세스
      • 서드파티 애플리케이션이 리소스오너(사용자)가 허락한 리소스에만 접근할 수 있도록 하겠다는 것이다
    • 리소스 서버
      • 리소스를 가지고 있는 서버이다
    • 인가서버