@@ -207,46 +207,32 @@ - (void)signInWithDefaultValue:(nullable NSString *)defaultValue
207207 [_loginManager logInFromViewController: presentingViewController
208208 configuration: configuration
209209 completion: ^(FBSDKLoginManagerLoginResult *result, NSError *error) {
210- if (error) {
211- NSError *newError =
212- [FUIAuthErrorUtils providerErrorWithUnderlyingError: error
213- providerID: FIRFacebookAuthProviderID];
214- [self completeSignInFlowWithAccessToken: nil idToken: nil error: newError];
215- } else if (result.isCancelled ) {
216- NSError *newError = [FUIAuthErrorUtils userCancelledSignInError ];
217- [self completeSignInFlowWithAccessToken: nil idToken: nil error: newError];
218- } else {
219- self->_email = FBSDKProfile.currentProfile .email ;
220- NSString *idToken = FBSDKAuthenticationToken.currentAuthenticationToken .tokenString ;
221- [self completeSignInFlowWithAccessToken: nil idToken: idToken error: nil ];
210+ if ([self maybeHandleCancelledResult: result error: error]) {
211+ return ;
222212 }
213+ self->_email = FBSDKProfile.currentProfile .email ;
214+ NSString *idToken = FBSDKAuthenticationToken.currentAuthenticationToken .tokenString ;
215+ [self completeSignInFlowWithAccessToken: nil idToken: idToken error: nil ];
223216 }];
224217 } else {
225218 [_loginManager logInWithPermissions: _scopes
226219 fromViewController: presentingViewController
227220 handler: ^(FBSDKLoginManagerLoginResult *result,
228221 NSError *error) {
229- if (error) {
230- NSError *newError =
231- [FUIAuthErrorUtils providerErrorWithUnderlyingError: error
232- providerID: FIRFacebookAuthProviderID];
233- [self completeSignInFlowWithAccessToken: nil idToken: nil error: newError];
234- } else if (result.isCancelled ) {
235- NSError *newError = [FUIAuthErrorUtils userCancelledSignInError ];
236- [self completeSignInFlowWithAccessToken: nil idToken: nil error: newError];
237- } else {
238- // Retrieve email.
239- [[[FBSDKGraphRequest alloc ] initWithGraphPath: @" me"
240- parameters: @{ @" fields" : @" email" }]
241- startWithCompletion: ^(id <FBSDKGraphRequestConnecting> connection,
242- id result,
243- NSError *error) {
244- self->_email = result[@" email" ];
245- }];
246- [self completeSignInFlowWithAccessToken: result.token.tokenString
247- idToken: nil
248- error: nil ];
222+ if ([self maybeHandleCancelledResult: result error: error]) {
223+ return ;
249224 }
225+ // Retrieve email.
226+ [[[FBSDKGraphRequest alloc ] initWithGraphPath: @" me"
227+ parameters: @{ @" fields" : @" email" }]
228+ startWithCompletion: ^(id <FBSDKGraphRequestConnecting> connection,
229+ id result,
230+ NSError *error) {
231+ self->_email = result[@" email" ];
232+ }];
233+ [self completeSignInFlowWithAccessToken: result.token.tokenString
234+ idToken: nil
235+ error: nil ];
250236 }];
251237 }
252238}
@@ -392,4 +378,22 @@ - (FBSDKLoginManager *)createLoginManager {
392378 return [[FBSDKLoginManager alloc ] init ];
393379}
394380
381+ - (BOOL )maybeHandleCancelledResult : (FBSDKLoginManagerLoginResult *)result
382+ error : (NSError *)error {
383+ if (error) {
384+ NSError *newError =
385+ [FUIAuthErrorUtils providerErrorWithUnderlyingError: error
386+ providerID: FIRFacebookAuthProviderID];
387+ [self completeSignInFlowWithAccessToken: nil idToken: nil error: newError];
388+ return true ;
389+ }
390+
391+ if (result.isCancelled ) {
392+ NSError *newError = [FUIAuthErrorUtils userCancelledSignInError ];
393+ [self completeSignInFlowWithAccessToken: nil idToken: nil error: newError];
394+ return true ;
395+ }
396+ return false ;
397+ }
398+
395399@end
0 commit comments