Blog

로그인 관련 jwt 수정

날짜
2023/09/16
진행상황
Done
비고
jwt 기존 코드 수정이라 참고하시면 좋을 것 같습니다.
작성자
Login 관련 코드 수정
Login API 코드입니다.
WebSecurityConfig 1.(86-91) // 로그아웃 추가 http.logout(logout -> { logout.logoutRequestMatcher(new AntPathRequestMatcher("/api/auth/logout")); logout.logoutSuccessUrl("/api/auth/login"); logout.invalidateHttpSession(true); logout.deleteCookies("JSESSIONID"); }); 2.(70-75) // 인증처리 수정 .requestMatchers("/api/auth/**").permitAll() // '/api/auth/'로 시작하는 요청 모두 접근 허가 > 회원가입, 로그인 // 메뉴 조회는 누구나 접근 / 카페도 추후 추가 .requestMatchers(HttpMethod.GET, "/api/menus").permitAll() .requestMatchers(HttpMethod.GET, "/api/menus/{id}").permitAll() .anyRequest().authenticated() // 그 외 모든 요청 인증처리 JwtUtil 1. addCookie 추가 2. getTokenFromRequest 추가 ->기존 헤더 , 쿠키에서 가져오기 위해서 JwtAuthenticatinoFIlter 1.(60-65) // 쿠키 -> 이메일로 만들기 , 헤더 x , 쿠키에 담기 String email = ((UserDetailsImpl) authResult.getPrincipal()).getUser().getEmail(); // username -> email UserRoleEnum role = ((UserDetailsImpl) authResult.getPrincipal()).getUser().getRole(); String token = jwtUtil.createToken(email, role); // username -> email // response.addHeader(JwtUtil.AUTHORIZATION_HEADER, token); // 헤더에 담기 jwtUtil.addJwtToCookie(token, response); // 쿠키에 담기 JwtAuthorization 1.(106~119) // uwernaem -> emial로 변경 , 그에 따른 userdeatailsServiceImple 수정 // 인증 처리 public void setAuthentication(String email) { SecurityContext context = SecurityContextHolder.createEmptyContext(); Authentication authentication = createAuthentication(email); context.setAuthentication(authentication); SecurityContextHolder.setContext(context); } // 인증 객체 생성 private Authentication createAuthentication(String email) { UserDetails userDetails = userDetailsService.loadUserByUsername(email); return new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); } }
Java
복사
34일차-로그인-유저네임-이메일-오류
리뷰내용
Codes
Java
복사
질문
질문