스프링 OAuth2client라이브러리를 이용하여 JWT 소셜로그인 순서도와 시큐리티 필터(+Redis 한스푼)

통계에 따르면 평균적으로 근로자들은 일평생의 10시간 정도를 패스워드를 입력하는 데에 사용한다고 한다.

이러한 현상을 가리키는 Password Fatigue(비밀번호 피로)

  1. 카카오 OAuth2 순서도를 통해서 OAuth2 인증방식에 대해서 알아보자.

    1. 소셜로그인의 장점과 단점
      1. 장점
      2. 사용자가 회원가입 절차 없이 바로 로그인 가능. ⇒ 쉽게 로그인이 가능하다는 것은 고객 이탈율을 최대한 막을 수 있다.
      3. 유지보수 부담 감소, 아이디, 비밀번호 관리 X (관리를 프로바이더에게 위임)
      4. 단점
      5. 일반 로그인보다 절차가 많음
      6. 개인정보 제한(원하는 개인정보를 전부 받을 수 없어서, 결국에는 추가적인 회원가입 절차가 필요할 수 있음)
      7. 외부 플랫폼 의존성(업데이트와 유지보수 면에서 고려점이 많아짐)
      8. 뇌피셜(빼자): 서비스 관점에서 우리회원이 많아져야하는데 소셜로그인으로 진행하게되면, 서비스의 로그인 부분을 위임하게 되므로 더 큰 서비스로 크기에 부적합
    2. 소셜 동의화면란?(사용자가 회원 정보를 어디까지 동의할것인가)
    3. 인가코드란?
  2. JWT에 대해서 알아보자.

  3. 스프링 OAuth2Client를 알아보자.(까보자)

  4. 쿠키를 사용할 때 배포시 유의사항

    1. CORS, Options요청, SOP, preflight, 서브도메인, http와 https, samesite(None, Lex, strict), httpOnly옵션, xss와 csrf
  5. 출처(개발자 유미 등등, 블로그)

JWT에 대해서 어디까지 알고계신가요?

JWT.io들어가면 claim까지는 걍 ㅂ무조건 보임, 어떤 알고리즘으로 되어있는지 정해져있기 때문에

안보이는부분은 sign?까지입니다. 따라서 세션방식에서 토큰 인가방식으로 바꿈으로서 리소스 이득을 취하는 대신 토큰에게 보안절차를 다 위임하면서 보안성을 낮추는거죠. (방금화면처럼)

그렇다면 JWT에는 어떤 정보를 담는게 좋을까요?