loginWithApple method
Implementation
Future<void> loginWithApple() async {
try {
AppleAuthProvider appleProvider = AppleAuthProvider();
appleProvider.addScope('email');
appleProvider.addScope('name');
final userCredentials = await FirebaseAuth.instance.signInWithProvider(
appleProvider,
);
if (userCredentials.user != null) {
if (kDebugMode) {
print(
"apple accessToken: ${userCredentials..credential?.accessToken}",
);
}
final response = await _dioApiService.post(
endpoint: '${CommunityConstants.socialAuth}/apple',
body: {
"access_token": (await userCredentials.user!.getIdToken())!,
"project": 'quitmate',
},
headers: {'api-key': CommunityConstants.apiKey},
);
if (response.statusCode == 200) {
await Hive.box('user_data').put('user_token', response.data['token']);
user.value = userCredentials.user;
if (user.value != null) {
isSignedIn.value = true;
_onLogin();
}
}
}
} catch (e) {
debugPrint('Apple Login Failed: $e');
}
}