signInWithApple method
Implementation
@override
Future<Response<Credential>> signInWithApple() async {
final response = Response<Credential>();
try {
final result = await appleAuth.getAppleIDCredential();
if (result.identityToken != null) {
final credential = OAuthProvider("apple.com").credential(
idToken: result.identityToken,
accessToken: result.authorizationCode,
);
return response.withData(Credential(
credential: credential,
accessToken: result.authorizationCode,
idToken: result.identityToken,
id: result.userIdentifier,
email: result.email,
name: result.givenName ?? result.familyName,
));
} else {
return response.withException('Token not valid!', status: Status.error);
}
} catch (_) {
return response.withException(_.toString(), status: Status.failure);
}
}