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