728x90

JWT 인증 3

[JWT] Illegal base64url character: ' ' 오류

Postman의 Authorization 탭에서 Type을 Bearer Token으로 설정한 뒤 Token을 입력하고 정상적으로 동작했던 API를 테스트 해보았는데 오류가 발생하였다. 인텔리제이 로그에서는 Illegal base64url character: ' ' 에러로그 메시지가 출력되었다. 에러 로그의 이유는 토큰값을 분해할 때 Base64 형식으로 decode 된 secret key를 사용하여 토큰을 분해하게 되는데, 그 과정에서 오류가 발생하는 것 같다(Base64 형식은 ' '(공백) 을 인식할 수 없다는 것이 이유). 해결 - Postman에서 API 요청할 때, Authorization 탭 대신 Headers 탭에서 Key 컬럼에 Authorization을 입력하고 Value 컬럼에 로그인에..

JWT 인증 2023.08.21

JWT 초기 설정

프로젝트 생성 자바 버전은 11로 하였고 아래의 Dependencies를 추가해줍니다. Spring Web Spring Security Spring Data JPA H2 Database Lombok Validation 테스트 컨트롤러 생성 해당 프로젝트가 잘 작동하는지 테스트 하는 컨트롤러를 만들어줍니다. @RestController @RequestMapping("/api") public class HelloController { @GetMapping("/hello") public ResponseEntity hello(){ return ResponseEntity.ok("hello"); } } Postman으로 GET요청을 했을때 401인증오류가 뜨는 것을 볼수 있습니다. SecurityConfig를 생성..

JWT 인증 2022.09.16

access token과 refresh token 의 차이(feat. JWT 인증)

access token과 refresh token을 설명하기 전에 token이란 무엇인지 왜 사용하는지에 대해서 먼저 알아보자. JWT(Json Web Token) jwt는 header와 payload, signature 세 파트로 구성되어 있으며 각파트는 점으로 구분되어 1111111111.2222222222.3333333333 header(적색).payload(청색).signature(녹색) 의 형태로 표현됩니다. header header에는 토큰의 타입과 암호화 알고리즘이 포함되어 있다. 타입은 jwt를 나타내고 있으며, 암호화 알고리즘은 SHA256, RSA와 같은 해시 알고리즘을 나타낸다. payload 토큰에 담을 claim 정보를 담고 있습니다. 저의 생각대로 쉽게 말하면 정보를 포함한 ke..

JWT 인증 2022.07.16
728x90