인가

    JWT가 뭐죠?

    JWT는 JSON Web Token의 약자입니다. 말 그대로 JSON 데이터 형태로 구성된 웹 토큰입니다. 일반적으로 로그인이 되었을 때, 로그인을 유지하거나 권한이 필요한 곳에 접근할 수 있도록 하는 등으로 사용됩니다. 그렇다면 이 토큰의 구성은 어떻게 되어있고 사용했을 때의 장점이 무엇이며, 언제 어디에 주로 사용되는지 순서대로 살펴봅시다!! 구조 JWT는 점(.)으로 구분되는 세 부분으로 구성됩니다. Header . Payload . Signature Header 헤더는 일반적으로 토큰의 유형(JWT)과 Signature 부분을 암호화하는 알고리즘으로 JSON 데이터를 구성합니다. { "alg" : "HS256", "typ" : "JWT" } 그 후 이 JSON 데이터를 Base64Url로 인코딩해..

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

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