From 2ea12c2edb66dba48fb5afb3931bfbcbb5e23fbc Mon Sep 17 00:00:00 2001 From: hooni Date: Thu, 8 Aug 2024 01:13:57 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat/#284=20=EB=A7=88=EC=8A=A4=ED=84=B0=20?= =?UTF-8?q?=EC=97=91=EC=84=B8=EC=8A=A4=ED=86=A0=ED=81=B0=20=EC=A3=BC?= =?UTF-8?q?=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KkuMulKum/Application/AppDelegate.swift | 1 - .../Login/VIewModel/LoginViewModel.swift | 27 ++++++++++++++++++- .../Onboarding/Login/View/LoginView.swift | 19 +++++++++++-- .../ViewController/LoginViewController.swift | 12 +++++++-- 4 files changed, 53 insertions(+), 6 deletions(-) diff --git a/KkuMulKum/Application/AppDelegate.swift b/KkuMulKum/Application/AppDelegate.swift index 3d825e81..2e465481 100644 --- a/KkuMulKum/Application/AppDelegate.swift +++ b/KkuMulKum/Application/AppDelegate.swift @@ -28,7 +28,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } else { print("Failed to load KAKAO_APP_KEY from PrivacyInfo.plist") } - setupFirebase(application: application) return true diff --git a/KkuMulKum/Source/Onboarding/Login/VIewModel/LoginViewModel.swift b/KkuMulKum/Source/Onboarding/Login/VIewModel/LoginViewModel.swift index cbbab194..4bdb85d4 100644 --- a/KkuMulKum/Source/Onboarding/Login/VIewModel/LoginViewModel.swift +++ b/KkuMulKum/Source/Onboarding/Login/VIewModel/LoginViewModel.swift @@ -247,7 +247,7 @@ class LoginViewModel: NSObject { } private func saveTokens(accessToken: String, refreshToken: String) { - print("Attempting to save tokens") + let accessTokenSaved = authService.saveAccessToken(accessToken) let refreshTokenSaved = authService.saveRefreshToken(refreshToken) @@ -259,6 +259,31 @@ class LoginViewModel: NSObject { print("Failed to save tokens") } } + + // TODO: 자동로그인 구현 후 삭제예정 + func fetchValueFromPrivacyInfo(forKey key: String) -> String? { + guard let path = Bundle.main.path(forResource: "PrivacyInfo", ofType: "plist"), + let dict = NSDictionary(contentsOfFile: path) as? [String: AnyObject], + let value = dict[key] as? String else { + return nil + } + return value + } + + // TODO: 자동로그인 구현 후 삭제예정 + func performTestLogin() { + guard let testAccessToken = fetchValueFromPrivacyInfo(forKey: "TEST_ACCESS_TOKEN") else { + print("Failed to retrieve test access token") + error.value = "Test access token not found" + return + } + + saveTokens(accessToken: testAccessToken, refreshToken: "") + userName.value = "" + loginState.value = .login + } + + } extension LoginViewModel: ASAuthorizationControllerDelegate, ASAuthorizationControllerPresentationContextProviding { diff --git a/KkuMulKum/Source/Onboarding/Login/View/LoginView.swift b/KkuMulKum/Source/Onboarding/Login/View/LoginView.swift index c130e98f..ad63d541 100644 --- a/KkuMulKum/Source/Onboarding/Login/View/LoginView.swift +++ b/KkuMulKum/Source/Onboarding/Login/View/LoginView.swift @@ -29,8 +29,16 @@ class LoginView: BaseView { $0.isUserInteractionEnabled = true } + // TODO: 자동로그인 구현 후 삭제예정 + let testLoginButton = UIButton().then { + $0.setTitle("Test Login", for: .normal) + $0.setTitleColor(.white, for: .normal) + $0.backgroundColor = .systemBlue + $0.layer.cornerRadius = 10 + } + override func setupView() { - addSubviews(backgroundImageView, appleLoginImageView, kakaoLoginImageView) + addSubviews(backgroundImageView, appleLoginImageView, kakaoLoginImageView, testLoginButton) } override func setupAutoLayout() { @@ -51,6 +59,13 @@ class LoginView: BaseView { $0.horizontalEdges.equalToSuperview().inset(14) $0.height.equalTo(Screen.height(54)) } - + + // TODO: 자동로그인 구현 후 삭제예정 + testLoginButton.snp.makeConstraints { + $0.centerX.equalToSuperview() + $0.top.equalTo(appleLoginImageView.snp.bottom).offset(20) + $0.width.equalTo(200) + $0.height.equalTo(50) + } } } diff --git a/KkuMulKum/Source/Onboarding/Login/ViewController/LoginViewController.swift b/KkuMulKum/Source/Onboarding/Login/ViewController/LoginViewController.swift index b98ce67b..52e5dae4 100644 --- a/KkuMulKum/Source/Onboarding/Login/ViewController/LoginViewController.swift +++ b/KkuMulKum/Source/Onboarding/Login/ViewController/LoginViewController.swift @@ -44,6 +44,10 @@ class LoginViewController: BaseViewController { action: #selector(kakaoLoginTapped) ) loginView.kakaoLoginImageView.addGestureRecognizer(kakaoTapGesture) + + // TODO: 자동로그인 구현 후 삭제예정 + loginView.testLoginButton.addTarget(self, action: #selector(testLoginTapped), for: .touchUpInside) + } private func bindViewModel() { @@ -55,7 +59,7 @@ class LoginViewController: BaseViewController { print("Login State: Not logged in") case .login: print("Login State: Logged in") - await owner.navigateToMainScreen() + await owner.navigateToMainScreen() case .needOnboarding: print("Login State: Need onboarding") await owner.navigateToOnboardingScreen() @@ -66,7 +70,7 @@ class LoginViewController: BaseViewController { loginViewModel.userName.bind(with: self) { owner, name in Task { if name != nil { - await owner.navigateToOnboardingScreen() + await owner.navigateToMainScreen() } else { await owner.navigateToOnboardingScreen() } @@ -129,4 +133,8 @@ class LoginViewController: BaseViewController { present(alert, animated: true) } } + + @objc private func testLoginTapped() { + loginViewModel.performTestLogin() + } } From 2e08e6eb347140e39c2954d7d7bffcc3f0359ebf Mon Sep 17 00:00:00 2001 From: hooni Date: Thu, 8 Aug 2024 01:15:55 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix/#284=20=EC=9E=90=EB=8F=99=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20=EC=9E=85=EC=9E=A5=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KkuMulKum/Application/SceneDelegate.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KkuMulKum/Application/SceneDelegate.swift b/KkuMulKum/Application/SceneDelegate.swift index 8c666266..1b3c8a38 100644 --- a/KkuMulKum/Application/SceneDelegate.swift +++ b/KkuMulKum/Application/SceneDelegate.swift @@ -31,7 +31,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { DispatchQueue.main.async { if success { print("Auto login successful, showing main screen") - self?.showLoginScreen() + self?.showMainScreen() } else { print("Auto login failed, showing login screen") self?.showLoginScreen() From bd35b10dbbe9ef1e8fd9145c8101a3fe91e79183 Mon Sep 17 00:00:00 2001 From: hooni Date: Thu, 8 Aug 2024 13:00:41 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix/#284=20=EC=BD=94=EB=A6=AC=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KkuMulKum/Application/SceneDelegate.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/KkuMulKum/Application/SceneDelegate.swift b/KkuMulKum/Application/SceneDelegate.swift index 1b3c8a38..d8b9a4e1 100644 --- a/KkuMulKum/Application/SceneDelegate.swift +++ b/KkuMulKum/Application/SceneDelegate.swift @@ -30,10 +30,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { loginViewModel.autoLogin { [weak self] success in DispatchQueue.main.async { if success { - print("Auto login successful, showing main screen") self?.showMainScreen() } else { - print("Auto login failed, showing login screen") self?.showLoginScreen() } }