Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix: 카카오 로그인 오류 수정 #58

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
chanrhan merged 3 commits into develop from fix/57-kakao-login-error
Nov 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
View file Open in desktop

This file was deleted.

View file Open in desktop
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package kr.kro.photoliner.domain.user.controller;

import java.net.URI;
import kr.kro.photoliner.common.dto.response.JwtResponse;
import kr.kro.photoliner.domain.user.dto.response.UserInfoResponse;
import kr.kro.photoliner.domain.user.service.UserService;
import kr.kro.photoliner.global.auth.Auth;
Expand All @@ -21,13 +20,10 @@ public class UserController {

private final UserService userService;
private final KakaoAuthService kakaoAuthService;
private static final String LOGIN_REDIRECT_URL = "http://localhost:5173/login/kakao";

@GetMapping("/login/kakao")
public ResponseEntity<JwtResponse> login(@RequestParam(value = "code") String authorizationCode) {
JwtResponse jwtResponse = userService.oAuthLogin(authorizationCode);

String redirectUrl = LOGIN_REDIRECT_URL + "#accessToken=" + jwtResponse.accessToken();
public ResponseEntity<Void> login(@RequestParam(value = "code") String authorizationCode) {
String redirectUrl = userService.oAuthLogin(authorizationCode);

return ResponseEntity
.status(HttpStatus.FOUND)
Expand Down
View file Open in desktop
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package kr.kro.photoliner.domain.user.service;

import kr.kro.photoliner.common.dto.response.JwtResponse;
import kr.kro.photoliner.domain.user.dto.response.UserInfoResponse;
import kr.kro.photoliner.domain.user.model.User;
import kr.kro.photoliner.domain.user.repository.UserRepository;
Expand All @@ -11,6 +10,7 @@
import kr.kro.photoliner.global.kakao.login.dto.response.KakaoProfileResponse;
import kr.kro.photoliner.global.kakao.login.service.KakaoAuthService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Service
Expand All @@ -20,21 +20,28 @@ public class UserService {
private final KakaoAuthService kakaoAuthService;
private final JwtProvider jwtProvider;

@Value("${client.base-url}")
public String baseUrl;

private static final String LOGIN_REDIRECT_URL = "/login/kakao";

public UserInfoResponse getUserInfo(Long userId) {
User user = userRepository.findUserById(userId)
.orElseThrow(() -> CustomException.of(ApiResponseCode.NOT_FOUND_USER, "user id: " + userId));
return UserInfoResponse.from(user);
}

public JwtResponse oAuthLogin(String authorizationCode) {
public String oAuthLogin(String authorizationCode) {
KakaoOauthTokenResponse tokenResponse = kakaoAuthService.getTokenByAuthorizationCode(authorizationCode);
String accessToken = tokenResponse.accessToken();
KakaoProfileResponse profileResponse = kakaoAuthService.getKakaoUserProfile(accessToken);
String kakaoAccessToken = tokenResponse.accessToken();
KakaoProfileResponse profileResponse = kakaoAuthService.getKakaoUserProfile(kakaoAccessToken);

User user = userRepository.findUserByEmail(profileResponse.kakaoAccount().email())
.orElseGet(() -> signup(User.from(profileResponse)));

return new JwtResponse(jwtProvider.createAccessToken(user));
String accessToken = jwtProvider.createAccessToken(user);

return baseUrl + LOGIN_REDIRECT_URL + "#accessToken=" + accessToken;
}

private User signup(User user) {
Expand Down
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ public Object resolveArgument(
Objects.requireNonNull(authAt);

String token = jwtProvider.extractAccessToken(webRequest);
System.out.println("resolver: " + token);
jwtProvider.validateToken(token);
Long userId = jwtProvider.getUserId(token);

Expand Down
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {

@ExceptionHandler(CustomException.class)
public ResponseEntity<Object> handlePhotoUploadException(
HttpServletRequest request,
Expand Down Expand Up @@ -63,6 +63,6 @@ private ResponseEntity<Object> buildErrorResponse(
);
return ResponseEntity
.status(response.status())
.body(request);
.body(response);
}
}
3 changes: 3 additions & 0 deletions src/main/resources/application-dev.yml
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,6 @@ jwt:
secret-key: ${SECRET_KEY}
access-token:
expiration-time: ${EXPIRATION_TIME}

client:
base-url: ${CLIENT_BASE_URL}
3 changes: 3 additions & 0 deletions src/main/resources/application-local-example.yml
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,6 @@ jwt:
secret-key: secret key
access-token:
expiration-time: time

client:
base-url: base url
Loading

AltStyle によって変換されたページ (->オリジナル) /