이전 프로젝트에서는 AccessToken, RefreshToken을 사용해 로그인을 구현했는데그 당시 토큰에 대한 개념과 Spring Security 필터에 대한 지식이 제대로 잡힌 상태가 아니였기에 (지금은..?)졸업 프로젝트에서 구현한 AccessToken을 구현하면서 내용을 정리해 보고자 한다.settingGradle 버전: 3.x.xjava: 17 패키지 구조 노란색 하이라이트인 클래스만 사용해서 JWT필터와 AcessToken 발급 구현토큰 발급이 주인 내용이므로 memberRepository나 login controller에 대한 내용은 간단하게 설명 Spring Security란? jwt를 구현하기 위해서는 먼저 Sprint Security 필터에 대한 이해가 어느정도 필요하다.해당 내용은 ..
jwt
JWT(JSON Web Token)란? jwt는 인증에 필요한 정보들을 암호화 시킨 JSON 토큰을 의미한다.따라서 JWT를 이용한 인증은 유저를 인증하고 식별하기 위한 Token 기반 인증이다.JWT는 JSON 데이터를 Base94 URL-safe Encode를 통해 인코딩하여 직렬화한 것이고,토큰 내부에는 개인키를 통한 전자 명이 들어있다.Base64 URL-safe Encode란? 일반적인 Base64 Encode 를 URL에서 오류 없이 사용하도록 '+' 와 '/'를 각각 '-', '_'으로 표현한 것이다. 토큰 기반 인증에서 토큰은 토큰 자체에 사용자 정보들이 포함되어 있다는 점(self-contained)이 특징이다. 클라이언트의 상태를 알아야했던 stateful했던 환경에서 JWT를 사용하게..
Authentication vs Authorization Atuhentication: 인증Authorization: 권한 부여 웹 사이트에 로그인 하는 것을 Authentication이라고 한다. 한번 로그인을 한 후에는 로그인 상태가 유지되어야 한다.이 유지하는 역할을 하는 것이 Authorization이다. 권한 부여를 통해 로그인 상태의 사용자만 사용할 수 있는기능을 사용할 수 있게 한다.어떤 요청마다 로그인을 할 수 없는 노릇이니 로그인 상태를 유지시키는 기술이 필요하다-> 여기서 세션이나 JWT 활용 대표적으로 사용자의 인증/인가를 처리할 때 사용하는 방식은 다음과 같이 3가지가 있다쿠키 방식세션 방식JWT 토큰 방식쿠키 클아이언트가 인증정보 관리 (stateless)쿠키 인증 방식은 쿠키에 ..