Apple login
unknown
plain_text
3 years ago
2.4 kB
10
Indexable
Future loginWithApple() async {
final RegistrationNotifier registrationNotifier =
Provider.of<RegistrationNotifier>(
navigatorKey.currentContext!,
listen: false,
);
try {
final AuthorizationCredentialAppleID credential =
await SignInWithApple.getAppleIDCredential(
scopes: [
AppleIDAuthorizationScopes.email,
AppleIDAuthorizationScopes.fullName,
],
webAuthenticationOptions: WebAuthenticationOptions(
clientId: 'com.nadsoft.arabcast',
redirectUri: Uri.parse(
'https://square-pie-marimba.glitch.me/callbacks/sign_in_with_apple',
),
),
).catchError((error) {
print(error);
});
final OAuthProvider oAuthProvider = OAuthProvider('apple.com');
final OAuthCredential credential1 = oAuthProvider.credential(
idToken: credential.identityToken,
accessToken: credential.authorizationCode,
);
if (credential != null) {
print(credential.userIdentifier);
registrationNotifier.firstNameController.text =
credential.givenName ?? '';
registrationNotifier.lastNameController.text =
credential.familyName ?? '';
registrationNotifier.emailController!.text = credential.email ?? '';
registrationNotifier.initPlatformState();
print('APPLE UID UID: ' + credential.userIdentifier!);
registrationNotifier.setProviderId(credential.userIdentifier ?? '');
registrationNotifier.setAccessToken(credential1.accessToken ?? '');
registrationNotifier.setProvider('ios');
registrationNotifier.checkUserExist();
if (credential.email != null && credential.email!.isNotEmpty) {
final User firebaseUser =
(await FirebaseAuth.instance.signInWithCredential(credential1))
.user!;
} else {
print('failed to login , email is required');
}
} else {}
print(credential);
} catch (ex) {
print(ex);
if (ex.toString() ==
'SignInWithAppleAuthorizationError(AuthorizationErrorCode.canceled, The operation couldn’t be completed. (com.apple.AuthenticationServices.AuthorizationError error 1001.))') {
print('canceled');
} else {
print(ex.toString());
}
}
}Editor is loading...