JWT를 이용해 인증을 하는 프로젝트에서 포스트맨으로 기능테스트를 해보던 중 응답헤더에서 받은 토큰을 다시 요청헤더에 넣고 요청을 보내는 과정이 여러 번 지속되니 상당히 번거롭기 시작했다. 그래서 토큰을 쿠키로 반환할 경우 포스트맨에서도 자동으로 쿠키로 등록되어 이런 번거로운 과정을 없앨 수 있었다.
public void addJwtToCookies(String token, HttpServletResponse response){
try{
token = URLEncoder.encode(token,"utf-8").replaceAll("\\+","%20");
Cookie cookie = new Cookie(AUTHORIZATION_HEADER,token);
cookie.setPath("/");
response.addCookie(cookie);
} catch (UnsupportedEncodingException e){
logger.error(e.getMessage());
}
}
위의 코드는 Jwt를 쿠키에 추가하는 메서드다. 생성된 토큰을 URLEncoder로 인코딩해주고 Name에는 AUTHORIZATION_HEADER의 값이 Value에는 token 값이 들어가게 된다. 그리고 HttpServletResponse객체에 쿠키를 담아준다.
public LoginResponseDto login(LoginRequestDto requestDto, HttpServletResponse response) {
String email = requestDto.getEmail();
String password = requestDto.getPassword();
...
jwtUtil.addJwtToCookies(jwtUtil.createToken(user.getEmail(),user.getUserRole()),response);
return ...;
}
서비스단에서 해당 메서드를 통해 쿠키에 토큰을 담는 행위를 실행한다.
그리고 포스트맨에서 요청을 보내면 자동으로 쿠키가 등록되는것을 확인할 수 있다.
'개발일지' 카테고리의 다른 글
20231214 - 프로그래머스/42840 (0) | 2023.12.14 |
---|---|
20231213 - 유효성 검사 클라이언트로 반환하기 (0) | 2023.12.13 |
20231211 - 백오피스 프로젝트 KPT 회고 (0) | 2023.12.11 |
20231211- QueryDSL사용해보기 (0) | 2023.12.11 |
20231207 - Spring으로 MultipartFile 받기 (2) | 2023.12.07 |