본문 바로가기

Project17

마이페이지 및 위시리스트 사실 로그인 jwt관련 토큰 관리를 redis 캐시로 해야 좋을거같은데.. 일단은 뭐 db에서 관리하는거로 넘어가고 로그인이 되었으니 이제 마이페이지 및 위시리스트로직을 구현하였다. @RequiredArgsConstructor public class UserRepositoryCustomImpl implements UserRepositoryCustom{ private final JPAQueryFactory jpaQueryFactory; @Override public UserDto getMyPage(String email) { UserDto result = jpaQueryFactory.select(Projections.constructor( UserDto.class, user, ExpressionUtils... 2023. 3. 29.
Jwt 리프레시 토큰을 이용한 액세스 토큰 재발급 보안상의 이유로 인가에 필요한 액세스 토큰의 만료시간을 매우 짧게 설정하였다. 이제 이토큰이 만료될시 클라이언트측에서 만료되었다는 응답을 받고 토큰재발급 api를 호출한다는 가정하에 로직을 짰다. @RestController @RequiredArgsConstructor public class TokenController { private final TokenService tokenService; @PostMapping("reIssuanceToken") public HashMap reIssuanceToken(HttpServletRequest request, HttpServletResponse response){ HashMap result = new HashMap(); String refreshHeader .. 2023. 3. 10.
Jwt 토큰 예외처리 Jwt 토큰을 발급하고 검증하는 기본 로직은 구현이 되었다. 하지만 토큰이 만료가되었는지 잘못된 토큰인지 구분하여 응답해주는 로직이 없어서 추가해야했다. 또한 로그인 성공시 리프레쉬 토큰을 발급하여 디비에 저장 또는 업데이트하는 로직도 추가했다. 먼저 리프레쉬 토큰 정보가 들어갈 테이블에 매핑될 도메인이다. @Entity @Table(name = "refresh_token") @Getter @NoArgsConstructor public class RefreshToken extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "refresh_token_id") private Long id; priva.. 2023. 3. 9.
Jwt 기본 세팅 인증이 필요하지 않은 api 같은 경우 러프하게는 구현이 되었다. 이제 인증에 필요한 jwt토큰발급을 위한 세팅을 하였다. 인프런 최주호님의 무료강의를 참조하였다. 먼저 Cors 정책을 글로벌로 허용해주는 Config파일을 수정했다 @Configuration public class CorsWebConfig implements WebMvcConfigurer { @Bean public CorsFilter corsFilter(){ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials.. 2023. 3. 3.