diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 6c30220b..0b31af42 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -502,7 +502,7 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = 3BD2BV9TRM; ENABLE_BITCODE = NO; - FLUTTER_BUILD_NAME = 1.0.3; + FLUTTER_BUILD_NAME = 1.0.4; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Ground Flip"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.healthcare-fitness"; @@ -511,7 +511,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.3; + MARKETING_VERSION = 1.0.4; PRODUCT_BUNDLE_IDENTIFIER = com.m3pro.groundFlip; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -692,7 +692,7 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = 3BD2BV9TRM; ENABLE_BITCODE = NO; - FLUTTER_BUILD_NAME = 1.0.3; + FLUTTER_BUILD_NAME = 1.0.4; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Ground Flip"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.healthcare-fitness"; @@ -701,7 +701,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.3; + MARKETING_VERSION = 1.0.4; PRODUCT_BUNDLE_IDENTIFIER = com.m3pro.groundFlip; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -722,7 +722,7 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = 3BD2BV9TRM; ENABLE_BITCODE = NO; - FLUTTER_BUILD_NAME = 1.0.3; + FLUTTER_BUILD_NAME = 1.0.4; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Ground Flip"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.healthcare-fitness"; @@ -731,7 +731,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.3; + MARKETING_VERSION = 1.0.4; PRODUCT_BUNDLE_IDENTIFIER = com.m3pro.groundFlip; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; diff --git a/lib/controllers/map_controller.dart b/lib/controllers/map_controller.dart index 700f87fa..3c0e599b 100644 --- a/lib/controllers/map_controller.dart +++ b/lib/controllers/map_controller.dart @@ -226,6 +226,7 @@ class MapController extends SuperController { void trackPixels() { _updatePixelTimer = Timer.periodic(const Duration(seconds: 10), (timer) async { + UserManager().updateSecureStorage(); updatePixels(); }); } diff --git a/lib/main.dart b/lib/main.dart index d73301b5..49d180c8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -7,7 +7,6 @@ import 'package:flutter/services.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; -import 'package:ground_flip/service/location_service.dart'; import 'package:internet_connection_checker_plus/internet_connection_checker_plus.dart'; import 'package:kakao_flutter_sdk/kakao_flutter_sdk_common.dart'; @@ -20,6 +19,7 @@ import 'screens/policy_screen.dart'; import 'screens/setting_screen.dart'; import 'screens/sign_up_screen.dart'; import 'service/auth_service.dart'; +import 'service/location_service.dart'; import 'utils/user_manager.dart'; import 'widgets/common/internet_disconnect.dart'; diff --git a/lib/utils/dio_service.dart b/lib/utils/dio_service.dart index e2e90248..3f2881ca 100644 --- a/lib/utils/dio_service.dart +++ b/lib/utils/dio_service.dart @@ -4,16 +4,15 @@ import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:get/get.dart' hide Response; -import 'package:ground_flip/utils/user_manager.dart'; import '../models/reissue_response.dart'; import '../service/auth_service.dart'; +import 'user_manager.dart'; class DioService { static final DioService _dioServices = DioService._internal(); static final String baseUrl = dotenv.env['BASE_URL']!; - // final SecureStorage secureStorage = SecureStorage(); final UserManager userManager = UserManager(); factory DioService() => _dioServices; @@ -31,7 +30,6 @@ class DioService { _dio.interceptors.add( InterceptorsWrapper( onRequest: (options, handler) async { - // final accessToken = await secureStorage.readAccessToken(); final accessToken = userManager.getAccessToken(); options.headers.addAll({ 'Authorization': 'Bearer $accessToken', @@ -52,9 +50,6 @@ class DioService { ReissueResponse reissueResponse = await reissueToken(); userManager.setAccessToken(reissueResponse.accessToken!); userManager.setRefreshToken(reissueResponse.refreshToken!); - // await secureStorage.writeAccessToken(reissueResponse.accessToken); - // await secureStorage - // .writeRefreshToken(reissueResponse.refreshToken); Response resendResponse = await resendRequest(dioException, reissueResponse); @@ -87,13 +82,13 @@ class DioService { } Future reissueToken() async { - // final refreshToken = await secureStorage.readRefreshToken(); final refreshToken = userManager.getRefreshToken(); final dio = Dio(); var response = await dio .post("$baseUrl/auth/reissue", data: {"refreshToken": refreshToken}); ReissueResponse reissueResponse = ReissueResponse.fromJson(response.data["data"]); + UserManager().setTokenReissued(); return reissueResponse; } diff --git a/lib/utils/user_manager.dart b/lib/utils/user_manager.dart index eb64eb26..84926241 100644 --- a/lib/utils/user_manager.dart +++ b/lib/utils/user_manager.dart @@ -1,5 +1,8 @@ +import 'secure_storage.dart'; + class UserManager { static final UserManager _instance = UserManager._internal(); + final SecureStorage secureStorage = SecureStorage(); factory UserManager() { return _instance; @@ -10,11 +13,20 @@ class UserManager { int? userId; String? accessToken; String? refreshToken; + bool? isTokenReissued; void init() { userId = null; accessToken = null; refreshToken = null; + isTokenReissued = null; + } + + updateSecureStorage() { + if (isTokenReissued == true) { + secureStorage.writeAccessToken(accessToken); + secureStorage.writeRefreshToken(refreshToken); + } } void setUserId(int id) { @@ -29,6 +41,10 @@ class UserManager { this.refreshToken = refreshToken; } + void setTokenReissued() { + isTokenReissued = true; + } + int? getUserId() { return userId; }