로그인

    OAuth2가 뭐죠?

    OAuth2 (Open Authorization 2.0) 는 인증을 위한 개방형 표준 프로토콜입니다. 이 기능을 통해서 Naver, Kakao, Google 등에 로그인하는 방법으로 간편한 소셜 로그인을 구현할 수 있으며, 서버 혹은 클라이언트에서는 로그인된 해당 애플리케이션에서 사용자의 정보를 받아와 사용할 수 있습니다. OAuth2 를 구성하는 역할을 소개하고 OAuth2를 사용해 로그인하는 과정을 순서대로 정리해보겠습니다. 구성 OAuth2 를 구성하기 위해서는 리소스 소유자(사용자), 클라이언트(애플리케이션 서버), 권한 서버, 리소스 서버가 필요합니다. 리소스 소유자는 로그인을 하는 주체입니다. 즉, Naver, Google 등에 로그인을 시도 할 사용자입니다. 클라이언트는 소셜 로그인을 통해 ..

    Spring Security가 뭐죠?

    많은 분들이 Spring boot를 사용하면서 인증/인가 기능을 추가하고자 한다면 Spring Security를 적극 추천합니다. Spring boot 환경에서 많은 부분을 쉽게 구현하도록 편의성을 제공해 주기 때문이죠!! 그렇다면 Spring 에서 Spring Security의 구조가 어떻게 되어있는지와 기본적인 로그인이 어떻게 동작하는 과정을 살펴봅시다. 구조 Spring Security를 알기 전에 서블릿 기반의 Spring 애플리케이션에서 Filter의 역할을 알아봅시다! Client의 요청이 다양한 Filter와 Servlet을 포함하는 FilterChain을 거쳐 컨트롤러로 보내집니다. FilterChain의 Filter에서는 HttpServletReqeust 와 HttpServletRespo..

    Spring Security + JWT + OAuth2 를 도입하겠습니다!

    이번에 새로운 프로젝트를 기획하면서 인증/인가 기능이 필요할 것 같다는 판단이 들었고, 해당 기능을 구현하고자 어떤 기술을 사용할지 고민할 필요가 있었습니다. 먼저, 서버를 Spring boot를 통해 구현하고자 결정했고, Spring boot에서 인증/인가를 쉽게 추가할 수 있는 프레임워크인 Spring Security를 선택했습니다. 그리고 이번 프로젝트에서는 많은 회원 정보를 필요로 하지 않아 간편한 회원가입과 로그인을 사용자에게 제공하기 위해 소셜로그인 기능을 사용하자는 판단으로 OAuth2를 선택했습니다. 마지막으로, 세션 방식에 비해서 상태에 관한 관리가 적어지는 토큰 방식을 선택해서 서버의 부하를 줄이자는 생각과 RESTful 한 개발에 목적을 두고 있기 때문에 stateless 한 JWT를..