首页 文章

当前用于 Facebook 的 iOS SDK 是否使用 OAuth2 身份验证

提问于
浏览
0

我正在使用 iOS SDK 将 Facebook 登录集成到我的应用程序中。我遇到的问题是我的后端告诉我,我需要发送 OAuth 授权代码并将提供商的 uri(在这种情况下是 Facebook)重定向到他们,以便在我们的平台中对用户进行身份验证。所以我的问题是 Facebook iOS SDK 是否进行 OAuth2 身份验证?如果是,我如何能够访问 OAuth 授权代码并重定向 uri?如果没有,有没有办法使用 Facebook 进行 iOS 的 OAuth2 身份验证?

1 回答

  • 0

    Facebook iOS SDK 将为您完成所有的誓言。我在我的应用程序中的方式。

    • 我正在通过 Facebook SDK 调用登录功能
    +(void)facebookLoginButtonClicked:(UIViewController *)viewController {
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
    [login logOut];
    [login logInWithReadPermissions: @[@"public_profile",@"user_friends",@"email"] fromViewController:viewController handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
         if (error) {
             Log(@"Process error: %@", error);
         } else if (result.isCancelled) {
             Log(@"Cancelled");
         } else {
             //Log(@"Logged in with results: %@", result);
             [self fetchCurrentUser:viewController];
         }
     }];
    }
    
    • 然后我用我感兴趣的字段获取当前用户:
    +(void)fetchCurrentUser:(UIViewController *)viewController{
    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:@"id,first_name,last_name,name,email,picture.width(100),friends.summary(true),link,permissions",@"fields", nil];
    
    if ([FBSDKAccessToken currentAccessToken]) {
        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:params]
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
             if (!error) {
               //  Log(@"fetched user:%@", result);
               // Here you can notify your backend service about new user
         }];
    }
    }
    

相关问题