From ae69d3dd5b27bb2b1042b4e35d48a04783154ad1 Mon Sep 17 00:00:00 2001 From: PecanPie Date: Sat, 22 Jul 2023 06:34:52 +0900 Subject: [PATCH] [Fix] #101 - Change storing User data with UserDefaults instead of KeyChain --- .../Puzzling/Application/SceneDelegate.swift | 10 ++++-- .../Network/Foundation/APIConst.swift | 3 +- .../ViewController/HomeViewController.swift | 32 ++----------------- .../OnBoardingViewController.swift | 16 +++++++--- 4 files changed, 23 insertions(+), 38 deletions(-) diff --git a/Puzzling/Puzzling/Application/SceneDelegate.swift b/Puzzling/Puzzling/Application/SceneDelegate.swift index f8c10ab..6dc37ae 100644 --- a/Puzzling/Puzzling/Application/SceneDelegate.swift +++ b/Puzzling/Puzzling/Application/SceneDelegate.swift @@ -85,8 +85,11 @@ extension SceneDelegate { } func getNewToken() { - guard let access = KeyChain.read(key: "accessToken") else { return } - guard let refresh = KeyChain.read(key: "refreshToken") else { return } +// guard let access = KeyChain.read(key: "accessToken") else { return } +// guard let refresh = KeyChain.read(key: "refreshToken") else { return } + guard let access = UserDefaults.standard.string(forKey: "accessToken") else { return } + guard let refresh = UserDefaults.standard.string(forKey: "refreshToken") else { return } + authProvider.request(.authToken(Authorization: access, Refresh: refresh)) { result in switch result { case .success(let result): @@ -95,7 +98,8 @@ extension SceneDelegate { do { guard let data = try result.map(GeneralResponse.self).data else { return } self.tokenModel = data.convertToTokenModel() - KeyChain.create(key: "accessToken", token: self.tokenModel.accessToken) +// KeyChain.create(key: "accessToken", token: self.tokenModel.accessToken) + UserDefaults.standard.set(self.tokenModel.accessToken, forKey: "accessToken") APIConstants.accessToken = self.tokenModel.accessToken } catch(let error) { print(error.localizedDescription) diff --git a/Puzzling/Puzzling/Network/Foundation/APIConst.swift b/Puzzling/Puzzling/Network/Foundation/APIConst.swift index cdbee06..164f3c0 100644 --- a/Puzzling/Puzzling/Network/Foundation/APIConst.swift +++ b/Puzzling/Puzzling/Network/Foundation/APIConst.swift @@ -22,7 +22,8 @@ enum APIConstants { static let applicationJSON = "application/json" static var deviceToken: String = "" static var jwtToken: String = "" - static var accessToken: String = KeyChain.read(key: "accessToken") ?? "" + static var accessToken: String = UserDefaults.standard.string(forKey: "accessToken") ?? "" +// KeyChain.read(key: "accessToken") ?? "" static var kakaoAccessToken: String = "" static var authorization: String = "" static var refresh: String = "" diff --git a/Puzzling/Puzzling/Presentation/Home/Main/ViewController/HomeViewController.swift b/Puzzling/Puzzling/Presentation/Home/Main/ViewController/HomeViewController.swift index 057024f..7eb4fe8 100644 --- a/Puzzling/Puzzling/Presentation/Home/Main/ViewController/HomeViewController.swift +++ b/Puzzling/Puzzling/Presentation/Home/Main/ViewController/HomeViewController.swift @@ -42,6 +42,7 @@ final class HomeViewController: UIViewController { private var currentProjectTitle: String = "" private var currentProjectRetrospectCycle: String = "" private var ongoingProjectArray: [OngoingProjectData] = [] + private var todayServerString = Date().dateToServerString // MARK: - View Life Cycle @@ -194,7 +195,7 @@ extension HomeViewController { private func setIndivisualDashboardData() { // MARK: - 개인 퍼즐 정보 가져오기 - dashboardNetworkProvider.request(.fetchIndivisualPuzzle(memberId: self.memberId, projectId: self.currentProjectId, todayString: Date().dateToServerString)) { [weak self] response in + dashboardNetworkProvider.request(.fetchIndivisualPuzzle(memberId: self.memberId, projectId: self.currentProjectId, todayString: self.todayServerString)) { [weak self] response in switch response { case .success(let result): let status = result.statusCode @@ -299,7 +300,7 @@ extension HomeViewController { private func setTeamDashboardData() { // MARK: - 팀 퍼즐 가져오기 - dashboardNetworkProvider.request(.fetchTeamPuzzle(projectId: self.currentProjectId, todayString: Date().dateToServerString)) { [weak self] response in + dashboardNetworkProvider.request(.fetchTeamPuzzle(projectId: self.currentProjectId, todayString: self.todayServerString)) { [weak self] response in switch response { case .success(let result): let status = result.statusCode @@ -368,33 +369,6 @@ extension HomeViewController { print(error) } } - - } - - func getNewToken() { - guard let access = KeyChain.read(key: "accessToken") else { return } - guard let refresh = KeyChain.read(key: "refreshToken") else { return } - authProvider.request(.authToken(Authorization: access, Refresh: refresh)) { result in - switch result { - case .success(let result): - let status = result.statusCode - if status >= 200 && status < 300 { - do { - guard let data = try result.map(GeneralResponse.self).data else { return } - self.tokenModel = data.convertToTokenModel() - KeyChain.create(key: "accessToken", token: self.tokenModel.accessToken) - APIConstants.accessToken = self.tokenModel.accessToken - } catch(let error) { - print(error.localizedDescription) - } - } - else if status >= 400 { - print("⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️") - } - case .failure(let error): - print(error.localizedDescription) - } - } } private func setBackButton() { diff --git a/Puzzling/Puzzling/Presentation/OnBoarding/ViewController/OnBoardingViewController.swift b/Puzzling/Puzzling/Presentation/OnBoarding/ViewController/OnBoardingViewController.swift index e47b69c..9c0489f 100644 --- a/Puzzling/Puzzling/Presentation/OnBoarding/ViewController/OnBoardingViewController.swift +++ b/Puzzling/Puzzling/Presentation/OnBoarding/ViewController/OnBoardingViewController.swift @@ -158,9 +158,11 @@ extension OnBoardingViewContoller { UserDefaults.standard.set(self.userModel.name, forKey: "name") UserDefaults.standard.set(self.userModel.projectId, forKey: "projectId") UserDefaults.standard.set(self.userModel.memberId, forKey: "memberId") - KeyChain.create(key: "accessToken", token: self.userModel.accessToken) - KeyChain.create(key: "refreshToken", token: self.userModel.refreshToken) +// KeyChain.create(key: "accessToken", token: self.userModel.accessToken) +// KeyChain.create(key: "refreshToken", token: self.userModel.refreshToken) // APIConstants.accessToken = self.userModel.accessToken + UserDefaults.standard.set(self.userModel.accessToken, forKey: "accessToken") + UserDefaults.standard.set(self.userModel.refreshToken, forKey: "refreshToken") if(self.userModel.isNewUser == true) { self.gotoMainEnterProjectView() @@ -189,8 +191,11 @@ extension OnBoardingViewContoller { } func getNewToken() { - guard let access = KeyChain.read(key: "accessToken") else { return } - guard let refresh = KeyChain.read(key: "refreshToken") else { return } +// guard let access = KeyChain.read(key: "accessToken") else { return } +// guard let refresh = KeyChain.read(key: "refreshToken") else { return } + guard let access = UserDefaults.standard.string(forKey: "accessToken") else { return } + guard let refresh = UserDefaults.standard.string(forKey: "refreshToken") else { return } + authProvider.request(.authToken(Authorization: access, Refresh: refresh)) { result in switch result { case .success(let result): @@ -199,7 +204,8 @@ extension OnBoardingViewContoller { do { guard let data = try result.map(GeneralResponse.self).data else { return } self.tokenModel = data.convertToTokenModel() - KeyChain.create(key: "accessToken", token: self.tokenModel.accessToken) +// KeyChain.create(key: "accessToken", token: self.tokenModel.accessToken) + UserDefaults.standard.set(self.tokenModel.accessToken, forKey: "accessToken") APIConstants.accessToken = self.tokenModel.accessToken } catch(let error) { print(error.localizedDescription)