Skip to content
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

refactor(api) : kakao link 클라이언트용 발급 #87

Merged
merged 1 commit into from
Jan 11, 2023
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
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand Down Expand Up @@ -48,35 +46,26 @@ public class AuthController {
private final WithDrawUseCase withDrawUseCase;
private final LogoutUseCase logoutUseCase;

@Operation(summary = "kakao oauth 링크발급", description = "kakao 링크를 받아볼수 있습니다.")
@Operation(summary = "kakao oauth 링크발급 (백엔드용 )", description = "kakao 링크를 받아볼수 있습니다.")
@Tag(name = "카카오 oauth")
@GetMapping("/oauth/kakao/link/test")
public OauthLoginLinkResponse getKakaoOauthLinkTest() {
return registerUseCase.getKaKaoOauthLinkTest();
}

@Operation(summary = "kakao oauth 링크발급 (클라이언트용)", description = "kakao 링크를 받아볼수 있습니다.")
@Tag(name = "카카오 oauth")
@GetMapping("/oauth/kakao/link")
public OauthLoginLinkResponse getKakaoOauthLink() {
return registerUseCase.getKaKaoOauthLink();
public OauthLoginLinkResponse getKakaoOauthLink(
@RequestHeader(value = "referer", required = false) String referer) {
return registerUseCase.getKaKaoOauthLink(referer);
}

@Operation(summary = "code 요청받는 핸들러 클라이언트가 몰라도됩니다.", deprecated = true)
@Tag(name = "카카오 oauth")
@GetMapping("/oauth/kakao")
public void getCredentialFromKaKao(
@RequestParam("code") String code,
@RequestHeader(value = "referer", required = false) String referer,
@RequestHeader(value = "host", required = false) String host,
HttpServletResponse response)
throws IOException {
OauthTokenResponse credentialFromKaKao = registerUseCase.getCredentialFromKaKao(code);
log.info(referer);
String queryString =
String.format(
"?idToken=%s&accessToken=%s&refreshToken=%s",
credentialFromKaKao.getIdToken(),
credentialFromKaKao.getAccessToken(),
credentialFromKaKao.getRefreshToken());
if (referer != null) {
response.sendRedirect(referer + "/kakao/callback" + queryString);
} else {
response.sendRedirect("https://" + host + "/kakao/callback" + queryString);
}
public OauthTokenResponse getCredentialFromKaKao(@RequestParam("code") String code) {
return registerUseCase.getCredentialFromKaKao(code);
}

@Operation(summary = "개발용 회원가입입니다 클라이언트가 몰라도 됩니다.", deprecated = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,12 @@ public class RegisterUseCase {
private final UserDomainService userDomainService;
private final TokenGenerateHelper tokenGenerateHelper;

public OauthLoginLinkResponse getKaKaoOauthLink() {
return new OauthLoginLinkResponse(kakaoOauthHelper.getKaKaoOauthLink());
public OauthLoginLinkResponse getKaKaoOauthLinkTest() {
return new OauthLoginLinkResponse(kakaoOauthHelper.getKaKaoOauthLinkTest());
}

public OauthLoginLinkResponse getKaKaoOauthLink(String referer) {
return new OauthLoginLinkResponse(kakaoOauthHelper.getKaKaoOauthLink(referer));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,22 @@ public class KakaoOauthHelper {

private final OauthOIDCHelper oauthOIDCHelper;

public String getKaKaoOauthLink() {
public String getKaKaoOauthLinkTest() {
return oauthProperties.getKakaoBaseUrl()
+ String.format(
KAKAO_OAUTH_QUERY_STRING,
oauthProperties.getKakaoClientId(),
oauthProperties.getKakaoRedirectUrl());
}

public String getKaKaoOauthLink(String referer) {
return oauthProperties.getKakaoBaseUrl()
+ String.format(
KAKAO_OAUTH_QUERY_STRING,
oauthProperties.getKakaoClientId(),
referer + "kakao/callback");
}

public OauthTokenResponse getOauthToken(String code) {

return kakaoOauthClient.kakaoAuth(
Expand Down