토큰을 이용하여 유저정보를 가져오는 API를 만들어보자
//클레임 추출
public Claims extractClaims(String token){
return Jwts.parser()
.setSigningKey(secretKey)
//.parseClaimsJwt(token)
.parseClaimsJws(token)
.getBody();
}
package com.hkhong.study.controller;
import com.hkhong.study.util.JwtUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequiredArgsConstructor
@RestController
@RequestMapping("/user")
public class UserController {
private final JwtUtil jwtUtil;
@GetMapping("")
public ResponseEntity<?> getUserInfo(@RequestHeader("Authorization") String token){
// "Bearer " 문자열을 제거
token = token.substring(7);
// 유저정보 리턴
return ResponseEntity.ok(jwtUtil.extractClaims(token));
}
}
이렇게해서 spring-security + jwt 을 이용해서 로그인 및 유저정보 API까지 호출해 보았고, 마무리하도록 하겠다.