[Spring] Security + JWT + OAuth2를 이용한 로그인 구현 (2) - JWT 관련 클래스 생성 / JWT 인증 로직
·
Programming/Spring
이전에 JWT 정의를 살펴봤다면, 이번에는 JWT 관련 클래스를 직접 생성하여 구현해보려고 합니다. 0. 들어가기 전JWT 패키지 구조는 다음과 같습니다. JWT 서비스를 생성하기 위해, build.gradle에 아래와 같은 의존성을 추가했습니다!implementation 'io.jsonwebtoken:jjwt-api:0.11.5'runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5' 또한, 설정 파일에 JWT 코드를 추가해 주도록 하겠습니다.jwt: secret: access: "base64로 인코딩된 암호 키, HS256를 사용할 것이기 때문에, 256비트(32바이트) 이상이 되..
[Spring] Security + JWT + OAuth2를 이용한 로그인 구현 (1) - JWT란?
·
Programming/Spring
1. JWT(JSON Web Token)란?JWT는 인증에 필요한 정보들을 암호화시킨 JSON 토큰을 의미합니다. 따라서 JWT를 이용한 인증은 유저를 인증하고 식별하기 위한 Token 기반 인증입니다. JWT는 JSON 데이터를 Base64 URL-safe Encode를 통해 인코딩하여 직렬화한 것이고, 토큰 내부에는 개인키를 통한 전자 서명이 들어있습니다.🤔 Base64 URL-safe Encode?Base64 URL-safe Encode란, 일반적인 Base64 Encode를 URL에서 오류 없이 사용하도록 '+'와 '/'를 각각 '-', '_'으로 표현한 것입니다. 토큰 기반 인증에서 토큰은 토큰 자체에 사용자의 정보들이 포함되어 있다는 점이 특징입니다.클라이언트의 상태를 알아야했던 Statef..