feat(socail): finished registration and ligin via social media

This commit is contained in:
misha
2025-10-15 14:21:43 +03:00
parent 9281213ea1
commit e073bd3f97
12 changed files with 187 additions and 201 deletions

View File

@@ -8,6 +8,7 @@ import 'package:eatvio_app/features/auth/models/yandex_profile_model.dart';
import 'package:flutter/material.dart';
import 'package:eatvio_app/core/app_router.dart';
import 'package:eatvio_app/core/env_config.dart';
import 'package:go_router/go_router.dart';
import 'package:http/http.dart' as http;
import 'package:vk_id/vk_id.dart';
import 'package:webview_flutter/webview_flutter.dart';
@@ -38,7 +39,7 @@ class SocialAuthFacade {
if (redirectParams == null) {
return null;
}
return await _parseVKAuthResult(redirectParams: redirectParams, controller: controller, codeVerifier: codeVerifier);
return await _parseVKAuthResult(redirectParams: redirectParams, controller: controller, codeVerifier: codeVerifier, clientId: clientIdStr);
} catch (e) {
return null;
}
@@ -48,6 +49,7 @@ class SocialAuthFacade {
required Map<String, String> redirectParams,
required VkIDController controller,
required String codeVerifier,
required String clientId,
}) async {
final code = redirectParams['code'];
final deviceId = redirectParams['device_id'];
@@ -88,6 +90,7 @@ class SocialAuthFacade {
phone: profile.phone,
gender: GenderEnum.fromVkGender(profile.parsedSex),
birthDate: profile.bDayDt?.toString(),
clientId: clientId,
);
}
@@ -151,6 +154,7 @@ class SocialAuthFacade {
phone: yandexProfileData.defaultPhone.number,
gender: GenderEnum.fromString(yandexProfileData.sex),
birthDate: yandexProfileData.birthday,
clientId: clientId,
);
} catch (e) {
log(e.toString());
@@ -188,7 +192,7 @@ class SocialAuthFacade {
try {
final controller = VkIDController(clID: int.parse(clientIdStr));
final authUri = controller.generateAuthorizeLinkWithCodeVerifier(provider: provider, scopes: [VkScope.phone, VkScope.email,]);
final authUri = controller.generateAuthorizeLinkWithCodeVerifier(provider: provider, scopes: [VkScope.phone, VkScope.email]);
final codeVerifier = authUri.key;
final authUrl = authUri.value.toString();
final redirectScheme = 'vk$clientIdStr://';
@@ -199,7 +203,7 @@ class SocialAuthFacade {
final deviceId = redirectParams['device_id'];
if (code == null || deviceId == null) return null;
return await _parseVKAuthResult(redirectParams: redirectParams, controller: controller, codeVerifier: codeVerifier);
return await _parseVKAuthResult(redirectParams: redirectParams, controller: controller, codeVerifier: codeVerifier, clientId: clientIdStr);
} catch (e) {
return null;
}
@@ -230,7 +234,9 @@ class SocialAuthFacade {
}
}
}
Navigator.of(context, rootNavigator: true).pop(params);
if (GoRouter.of(context).canPop()) {
GoRouter.of(context).pop(params);
}
return NavigationDecision.prevent;
}
return NavigationDecision.navigate;