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

时间:2016-08-15 18:52:57

标签: ios facebook facebook-graph-api oauth

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

1 个答案:

答案 0 :(得分:0)

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

  1. 我正在通过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];
         }
     }];
    }
    
  2. 然后,我正在使用我感兴趣的字段获取当前用户:

    +(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
         }];
    }
    }