From 24675714e016fc8e0ee64e202f98b60f4c44b3aa Mon Sep 17 00:00:00 2001 From: misha Date: Fri, 10 Oct 2025 17:02:08 +0300 Subject: [PATCH 1/2] feat(social): added vk client id for ios --- lib/core/env_config.dart | 3 ++- lib/features/auth/sdk/social_auth_facade.dart | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/core/env_config.dart b/lib/core/env_config.dart index 446bc65b..3d451c6f 100644 --- a/lib/core/env_config.dart +++ b/lib/core/env_config.dart @@ -45,7 +45,8 @@ class EnvConfig { static String get yandexCheckUrl => dotenv.env['YANDEX_CHECK_URL'] ?? ''; // VK ID Configuration - static String get vkClientId => dotenv.env['VK_CLIENT_ID'] ?? ''; + static String get vkClientIdIos => dotenv.env['VK_CLIENT_ID_IOS'] ?? ''; + static String get vkClientIdAndroid => dotenv.env['VK_CLIENT_ID_ANDROID'] ?? ''; // Yandex ID Configuration static String get yandexClientId => dotenv.env['YANDEX_CLIENT_ID'] ?? ''; diff --git a/lib/features/auth/sdk/social_auth_facade.dart b/lib/features/auth/sdk/social_auth_facade.dart index ada242a9..b7f4f93d 100644 --- a/lib/features/auth/sdk/social_auth_facade.dart +++ b/lib/features/auth/sdk/social_auth_facade.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:developer'; +import 'dart:io'; import 'package:eatvio_app/features/auth/entities/auth_result_entity.dart'; import 'package:eatvio_app/features/auth/models/yandex_profile_model.dart'; @@ -20,7 +21,7 @@ class SocialAuthFacade { } static Future signInWithVkAndFetchProfile({required BuildContext context}) async { - final clientIdStr = EnvConfig.vkClientId.trim(); + final clientIdStr = Platform.isIOS ? EnvConfig.vkClientIdIos.trim() : EnvConfig.vkClientIdAndroid.trim(); if (clientIdStr.isEmpty) { return null; } @@ -195,7 +196,7 @@ class SocialAuthFacade { } static Future _signInWithVkIdProvider({required BuildContext context, required VkProvider provider}) async { - final clientIdStr = EnvConfig.vkClientId.trim(); + final clientIdStr = Platform.isIOS ? EnvConfig.vkClientIdIos.trim() : EnvConfig.vkClientIdAndroid.trim(); if (clientIdStr.isEmpty) { return null; } From 09a00a41adaa887c6ed81990fa4affd064aec09f Mon Sep 17 00:00:00 2001 From: misha Date: Tue, 14 Oct 2025 12:09:26 +0300 Subject: [PATCH 2/2] added scopes for yandex id --- lib/features/auth/sdk/social_auth_facade.dart | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/lib/features/auth/sdk/social_auth_facade.dart b/lib/features/auth/sdk/social_auth_facade.dart index b7f4f93d..4cab0962 100644 --- a/lib/features/auth/sdk/social_auth_facade.dart +++ b/lib/features/auth/sdk/social_auth_facade.dart @@ -91,21 +91,6 @@ class SocialAuthFacade { ); } - Future?> exchangeCodeForToken(String code, String clientId, String clientSecret) async { - final response = await http.post( - Uri.parse('https://oauth.yandex.ru/token'), - headers: {'Content-Type': 'application/x-www-form-urlencoded'}, - body: {'grant_type': 'authorization_code', 'code': code, 'client_id': clientId, 'client_secret': clientSecret}, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body) as Map; - } else { - log('Error exchanging code: ${response.body}'); - } - return null; - } - static Future signInWithOkAndFetchProfile() async { final context = AppRouter.navigatorKey.currentContext; if (context == null) return null; @@ -134,7 +119,8 @@ class SocialAuthFacade { 'response_type': 'code', 'client_id': clientId, 'redirect_uri': redirectUri, - 'force_confirm': 'yes', + 'scope': 'login:info login:email', + 'force_confirm': 'true', }).toString(); final redirectSchemePrefix = redirectUri;