3

澄清如果您只想使用 iOS 提供的社交 API(帐户框架),您可以让用户使用他们的 facebook 或 twitter 帐户登录您的应用程序吗?
如果是,那么您将使用什么与用户 ID(或名称、推特名称、脸书名称)一起确保(在服务器端)他们是谁。

更具表现力的解释 我很难理解原生 iOS(或 Android)应用程序中 3rd 方注册和登录集成背后的工作流程/逻辑,因此在 iOS 中,有一个中央商店可以保存用户的 twitter(或 facebook)凭据和应用程序可以调用 api 来获取用户的 twitter id,到目前为止一切都很好,但是如果我想与后端服务器交谈并证明用户是他们声称拥有用户 id 的人是不够的,
我错过了什么吗?

我的问题是,如果他们没有证明您的凭据,您如何使用您的后端服务器对用户进行身份验证?

4

1 回答 1

0

您可以使用 ACAccountStore 进行身份验证。感谢http://blogs.captechconsulting.com/blog/eric-stroh/ios-6-tutorial-integrating-facebook-your-applications提供以下大部分代码。

self.accountStore = [[ACAccountStore alloc]init];
ACAccountType *FBaccountType= [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSString *key = @"987654"; //put your own key from FB here
NSDictionary *dictFB = //use the ACAccountStore ACFacebookPermissionsKey to help create your dictionary of permsission you'd like to request, such as the users email, writing on the wall, etc.
[self.accountStore requestAccessToAccountsWithType:FBaccountType options:dictFB completion: ^(BOOL granted, NSError *e) {
    if (granted) {
        NSArray *accounts = [self.accountStore accountsWithAccountType:FBaccountType];
        //it will always be the last object with SSO
        self.facebookAccount = [accounts lastObject];
    } else {
        //Fail gracefully...
        NSLog(@"error getting permission %@",e);
    } 
}];

此时,您可以访问 accountStore 中的 oauth 令牌,您可以将其发送到您的服务器,以便与 facebook 进行任何服务器端交互。

于 2013-05-10T03:10:47.220 回答