💻문제점
회원가입을 하고 다음과 같이 로그인을 해서 토큰을 얻었다. Bearer ey어쩌구~~
로그인을 해야 게시물 등록이 가능하기에, 헤더 부분에 토큰을 넣어줬다.
하지만 다음과 같은 에러가 떴다.
📃시도
토큰에 띄어쓰기가 있어 사용할 수 없다는 것 같은데, 아무리 봐도 띄어쓰기가 안 보였다.
한참 application.yml 에 있는 jwt.secret.key를 들여다 보며 요리조리 키를 바꾸어봤었다.
key값에 replace를 줘서 띄어쓰기를 다른 문자로 바꾸려고 했지만, 내가 찾을 수 없는 띄어쓰기는 역시 코드도 찾지 못한 모양...
🔍해결
원인은 jwt.secret.key가 아니었다. 당연하다. 왜냐하면 토큰은 내가 생성한거니까. 나는 이상한 곳에서 삽질하고 있었던 것... 내가 생성한 토큰이 Bearer ey어쩌구~~ 인데 여기서 Bearer 다음에 띄어쓰기가 생긴다. 일단 내가 필요한 것은 ey어쩌구~ 부분이고 'Bearer ' 부분은 필요가 없다. 토큰을 가져올 때 prefix인 'Bearer '가 함께 있기 때문에 오류가 발생한 것이었다.
결과적으로 다음과 같이 띄어쓰기를 기준으로 split 해서 ey어쩌구~ 부분만 가져오도록 했다.
public Claims getUserInfoFromToken(String token) {
token = token.split(" ")[1].trim();
return Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token).getBody();
}
다음과 같이 정상적으로 게시글 등록이 된 것을 확인 할 수 있다.
728x90
'TIL' 카테고리의 다른 글
[TIL - 20230420] ControllerAdvice, ExceptionHandler 전역 예외 처리 (0) | 2023.04.20 |
---|---|
[TIL - 20230419] JWT (0) | 2023.04.19 |
[TIL - 20230415] (0) | 2023.04.15 |
[TIL - 20230414] 블로그 과제 (0) | 2023.04.15 |
[TIL - 20230413] 세션 (0) | 2023.04.13 |