diff --git a/Projects/App/Sources/Feature/SigninFeature/Sources/SigninView.swift b/Projects/App/Sources/Feature/SigninFeature/Sources/SigninView.swift index 5f8b836..eda65b4 100644 --- a/Projects/App/Sources/Feature/SigninFeature/Sources/SigninView.swift +++ b/Projects/App/Sources/Feature/SigninFeature/Sources/SigninView.swift @@ -101,7 +101,7 @@ struct SigninView: View { } .navigationDestination(isPresented: $isActiveSignin) { - SignupView(viewModel: AuthViewModel()) + TabBarView() } .padding(.top, 152) diff --git a/Projects/App/Sources/Feature/SignupFeature/Sources/AuthViewModel.swift b/Projects/App/Sources/Feature/SignupFeature/Sources/AuthViewModel.swift index c13cb96..77d1a07 100644 --- a/Projects/App/Sources/Feature/SignupFeature/Sources/AuthViewModel.swift +++ b/Projects/App/Sources/Feature/SignupFeature/Sources/AuthViewModel.swift @@ -93,64 +93,38 @@ public final class AuthViewModel: ObservableObject { case 200: let signInResponse = try result.map(SigninResponse.self) - // 만료 시간을 현재로부터의 시간 대신 `Date(timeIntervalSince1970:)`으로 변환 - if let accessTokenExpiresIn = Double(signInResponse.accessTokenExpiresIn), - let refreshTokenExpiresIn = Double(signInResponse.refreshTokenExpiresIn) { + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss" + dateFormatter.timeZone = TimeZone(secondsFromGMT: 0) - let accessTokenExpirationDate = Date(timeIntervalSince1970: accessTokenExpiresIn) - let refreshTokenExpirationDate = Date(timeIntervalSince1970: refreshTokenExpiresIn) + if let accessTokenExpirationDate = dateFormatter.date(from: signInResponse.accessTokenExpiresIn), + let refreshTokenExpirationDate = dateFormatter.date(from: signInResponse.refreshTokenExpiresIn) { + + let accessTokenExpirationInterval = accessTokenExpirationDate.timeIntervalSinceNow + let refreshTokenExpirationInterval = refreshTokenExpirationDate.timeIntervalSinceNow KeyChain.shared.saveTokenWithExpiration( key: Const.KeyChainKey.accessToken, token: signInResponse.accessToken, - expiresIn: accessTokenExpirationDate.timeIntervalSinceNow + expiresIn: accessTokenExpirationInterval ) KeyChain.shared.saveTokenWithExpiration( key: Const.KeyChainKey.refreshToken, token: signInResponse.refreshToken, - expiresIn: refreshTokenExpirationDate.timeIntervalSinceNow + expiresIn: refreshTokenExpirationInterval ) - // 만료 시간 확인을 위한 출력 - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" - dateFormatter.timeZone = TimeZone.current - - print("Access Token 만료 날짜: \(dateFormatter.string(from: accessTokenExpirationDate))") - print("Refresh Token 만료 날짜: \(dateFormatter.string(from: refreshTokenExpirationDate))") + print("Access Token 만료 날짜: \(accessTokenExpirationDate)") + print("Refresh Token 만료 날짜: \(refreshTokenExpirationDate)") } else { - print("만료 시간 변환 오류: accessTokenExpiresIn 또는 refreshTokenExpiresIn이 Double로 변환되지 않음.") + print("만료 시간 변환 오류: 유효한 날짜 형식이 아님.") } DispatchQueue.main.async { completion(statusCode, signInResponse.accessToken, signInResponse.refreshToken) } - case 400: - print("400ㅣ비밀번호가 일치하지 않습니다.") - DispatchQueue.main.async { - completion(statusCode, nil, nil) - } - - case 403: - print("403ㅣ아직 보류중입니다.") - DispatchQueue.main.async { - completion(statusCode, nil, nil) - } - - case 404: - print("404ㅣ계정을 찾지 못했습니다.") - DispatchQueue.main.async { - completion(statusCode, nil, nil) - } - - case 500..<600: - print("\(statusCode)ㅣ서버오류입니다.") - DispatchQueue.main.async { - completion(statusCode, nil, nil) - } - default: print("Unhandled status code: \(statusCode)") DispatchQueue.main.async { @@ -173,8 +147,6 @@ public final class AuthViewModel: ObservableObject { } } - - // MARK: - Sign Up func signUp(completion: @escaping (Bool) -> Void) { let params = SignupRequest(name: name, nickname: nickname, email: email, password: password, phoneNumber: phoneNumber)