들어가기에 앞서 프로젝트를 진행도중 Github OAuth 2.0을 도입하고자 처음부터 마음먹었다. 그런데 OAuth가 처음이라 개념이 너무 헷갈리기도 했고 Github OAuth2.0을 대상으로 커스텀한 글이 많이 적어 시간이 많이 오래걸렸다. 다른 글들을 많이 참고하고 비슷한 부분이 많지만 그래도 Github로 한 것은 없기에 글을 써봅니다. https://velog.io/@jkijki12/Spring-Boot-OAuth2-JWT-%EC%A0%81%EC%9A%A9%ED%95%B4%EB%B3%B4%EB%A6%AC%EA%B8%B0 해당글을 참고해서 쓴 글입니다!! OAuth 구조에 대한 많은 의견이 있지만 저는 이렇게 구현하기로 했습니다. 많은 과정이있지만 간략하게 코드와, 주석, 설명으로 대체하겠습니다..
프로젝트에서 사용한 Spring Secutiry이용한 JWT 로그인 API를 정리하고자 글을 씁니다 목차 Spring Secutiry란 무엇인가 JWT란 무엇이고 RefreshToken 저장 방법 Spring Secutiry + JWT 구현하기 Spring Secutiry 가장 중요한 흐름도입니다 이것만 이해하면 구현은 쉽게 할 수 있습니다 듀얼 모니터라면 다른 모니터에 띄우고 계속 보시면서 구현하면 구조를 파악하기 수월하실 겁니다 하나 하나 알아봅시다 사용자가 어떤 정보를 서버에 요청합니다 여기서 정보는 어떤 정보든 상관없습니다 새로고침, Url검색등등을 통해 요청(Request)이 발생합니다 그러면 AuthenticationFilter가 그 요청을 가로챕니다 ex) PostMapping -> memb..
들어가기에 앞서 Refresh Token을 Cookie로 처리할까 고민 하던 도중 막상 왜 그렇게 저장하는지 자세히 모르고 사용했던 것 같다. 그래서 Jwt의 문제점들을 파악한 후에 써야 후에 고생하지 않을 거 같아서 문제점들을 알아보기로 했다 JWT의 문제점들 XSS(Cross Site Scripting) 웹 해킹 중 하나인 XSS는 게시판이나 웹 등에 JS와 같은 스크립트 코드를 삽입 해 개발자가 생각하지 못한 기능이 작동하도록 하는 공격 대부분의 웹 해킹 공격 기법과는 다르게 사용자-> 클라이언트를 대상으로한 공격이다 ex) 해커가 원하는 링크를 클릭하면 사용자가 가지고 있는 Cookie등을 사용하고 있는 서버로 Request를 보낸다 그러면 서버는 Response로 응답하기 때문에 해커가 원하는 ..
진행하던 토이 프로젝트에 Spring Security + JWT를 이용해서 로그인을 구현했었는데 이번에는 단순 구현뿐 아니라 JWT에 대하여 좀더 공부해보고 하는 생각으로 글을 씁니다. 먼저 가장 중요한 JWT의 정의에 대하여 알아보아야 겠죠? JWT란 JWT(Json Web Token)의 약자로 Json 기반의 Web Token입니다. 발급된 토큰값을 Json 객체로 변환 그 후 Clien에게 전송해주는 것을 말하는데요 음 그런데 Jwt가 무엇인지는 대충 알겠는데 왜 JWT를 쓰는 걸까요? 그 전에 Token을 발급해주는 이유는 무엇일까요? 그냥 DB에 ID/PW만 저장하고 Login할 때마다 확인해주면 안될까? 그러면 DB가 해킹당하면.. 큰 문제가 발생하고 또 로그인을 유지하려면 사용자가 API를 ..