Skip to content

Commit

Permalink
Merge pull request #202 from APPS-sookmyung/nginx_feat/#149
Browse files Browse the repository at this point in the history
[Fix] Redirect URL 수정
  • Loading branch information
ajung7038 authored Dec 26, 2024
2 parents a0ee99d + 285a297 commit 581995e
Showing 1 changed file with 26 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public String login(HttpServletResponse response) throws IOException {


@GetMapping("/auth/kakao/callback")
public String callback(@RequestParam("code") String code, HttpServletResponse response) throws IOException {
public String callback(@RequestParam("code") String code, HttpServletResponse response, HttpServletRequest request) throws IOException {
try {
// 1. 카카오에서 accessToken 받아오기
String accessToken = kakaoService.getAccessTokenFromKakao(code);
Expand All @@ -92,7 +92,7 @@ public String callback(@RequestParam("code") String code, HttpServletResponse re
String jwtToken = jwtService.generateToken(member); // 생성된 또는 업데이트된 사용자로 JWT 생성
//
//// // 5. 쿠키에 JWT 저장
Cookie jwtCookie = new Cookie("jwtToken", jwtToken);
Cookie jwtCookie = new Cookie("Set-Cookie", jwtToken);
jwtCookie.setHttpOnly(true); // JavaScript로 쿠키에 접근 불가
jwtCookie.setSecure(true); // HTTPS에서만 전송
jwtCookie.setMaxAge(60 * 60 * 24); // 쿠키 유효 시간 설정
Expand Down Expand Up @@ -127,17 +127,38 @@ public String callback(@RequestParam("code") String code, HttpServletResponse re


// 리다이렉트 URL 설정
String redirectUrl = frontendUrl + "/home"; // 원하는 프론트엔드 URL
String redirectUrl = getFrontendUrl(request) + "/home";
response.sendRedirect(redirectUrl);


return "로그인 성공";

} catch (Exception e) {
log.error("로그인 처리 중 오류 발생", e);
return "로그인 처리 중 오류" + HttpStatus.INTERNAL_SERVER_ERROR;
}
}

private String getFrontendUrl(HttpServletRequest request) {
String redirectUrl;

String origin = request.getHeader("referer"); // 요청의 출처를 가져옵니다.

if (origin != null) {
// 요청의 출처가 localhost일 경우
if (origin.contains("localhost:8000")) {
redirectUrl = "http://localhost:8000";
}
// 요청의 출처가 wellet.com일 경우
else if (origin.contains(frontendUrl)) {
redirectUrl = frontendUrl;
} else {
redirectUrl = frontendUrl;
}
} else {
redirectUrl = frontendUrl;
}

return redirectUrl;
}
}


Expand Down

0 comments on commit 581995e

Please sign in to comment.