Black List에 access Token 도 추가하기 ?
로그아웃 처리 후 만료된 access Token을 가지고 사용자의 정보를 조회하니까 조회가 되버리는 문제가 생겼다.
그래서 보니까 만료된 access Token을 처리해야 되는데 처리하지 않고 로그아웃 시켜서이기 때문인것 같았다.
refreshToken만 블랙리스트에 추가한 것도 있고... 로그아웃하면 해당 토큰을 그냥 만료처리 시켜버려야되나?
만료 처리를 어떻게 하지? 라고 생각하니까 너무 복잡해서 그냥 블랙 리스트 테이블에 엑세스 토큰도 추가해버린 후 JWT Filter에 블랙리스트에 해당 엑세스 토큰이 있는지 검증하는 로직을 추가했다.
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
String token = resolveToken((HttpServletRequest) request);
if (token != null && !jwtProvider.isExpired(token) && !jwtProvider.isInBlackList(token)) {
// 토큰이 유효할 경우 토큰에서 Authentication 객체를 가지고 와서 SecurityContext 에 저장
Authentication authentication = jwtProvider.getAuthentication(token);
SecurityContextHolder.getContext().setAuthentication(authentication);
}
filterChain.doFilter(request,response);
}
사실 이렇게 하는게 맞는건진 모르겠다. 찾아보니까 Redis를 이용하면 된다던데....지금 해야할 게 너무 많아서 나중에 다 찾아봐야 할듯
'SCHOOL > 캡스톤' 카테고리의 다른 글
[졸프 서버] 시작 전 서버 구상도! (0) | 2024.07.01 |
---|---|
[졸프 백엔드] [버그 수집] logout 시 "detail": "method 'get' is not supported." (0) | 2024.07.01 |
[졸프 백엔드] JWT로 로그아웃 구현하기 (0) | 2024.06.30 |
[졸프 딥러닝] smplx의 obj파일로 체형 분석을 해보자 (0) | 2024.04.08 |
[졸프 딥러닝] [버그 수집] smplfiy 코랩 오픈포즈 오류 (0) | 2024.04.04 |