首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Facebook访问令牌服务器端身份验证

使用Facebook访问令牌服务器端身份验证
EN

Stack Overflow用户
提问于 2013-06-24 06:06:27
回答 1查看 815关注 0票数 1

我正在开发基于与服务器通信的iPhone应用程序,我想使用Facebook身份验证机制。

基本上,我认为它应该是这样的:

  1. 在我的iPhone应用程序中,用户使用他的电子邮件和密码登录到Facebook。
  2. 用户允许访问相关Facebook应用程序的数据。
  3. 在成功登录后,我的iPhone应用程序接收访问令牌。
  4. 在与我的服务器进一步通信时,我的iPhone应用程序应该使用接收到的Facebook访问令牌(例如:在查询中).When我的服务器接收来自iPhone应用程序的一些查询,使用访问令牌,它应该询问.When这个令牌是否有效(以及对谁有效),如果是,服务器应该假设该用户是通过iPhone身份验证的。

我的问题是:服务器应该如何询问Facebook,给定访问令牌是否有效?我想我应该以某种方式检查一下这个标记对我的Facebook应用程序是否有效。

我已经尝试过很多Facebook查询来绘制API,这是我已经发现的,但没有像我预期的那样起作用。你能给我举个例子吗?

EN

Stack Overflow用户

发布于 2013-06-24 06:28:54

我要让accessToken通过这个

代码语言:javascript
运行
复制
NSString * accessToken = [[FBSession activeSession] accessToken];

然后,用户可以通过实现以下方法来获取用户的Facebook数据:

代码语言:javascript
运行
复制
 - (void)sessionStateChanged:(FBSession *)session state:(FBSessionState) state error:(NSError *)error
    {
        switch (state)
        {            ///  ****************   IT GIVES THIS ACCESS TOKEN   *****************///////////////////////// 
            case FBSessionStateOpen:
            {
                      // https://graph.facebook.com/me?access_token=%@
                 accessToken = [[FBSession activeSession] accessToken];
                NSLog(@"accessToken: %@",accessToken);
                NSString *urlList = [NSString stringWithFormat:@"https://graph.facebook.com/me?access_token=%@",accessToken];
                NSURL *url1 = [NSURL URLWithString:urlList];
                NSURLRequest *urlReqst = [[NSURLRequest alloc] initWithURL:url1];
                NSData *dataConnection = [NSURLConnection sendSynchronousRequest:urlReqst
                                                               returningResponse:nil
                                                                           error:nil];
                NSString *jsonData = [[NSString alloc] initWithData:dataConnection
                                                           encoding:NSUTF8StringEncoding];
                NSDictionary *jsonDic = [jsonData JSONValue];

                self.appid = [jsonDic valueForKey:@"id"];
                self.appusername = [jsonDic valueForKey:@"username"];
                self.appfirst_name = [jsonDic valueForKey:@"first_name"];
                self.applast_name = [jsonDic valueForKey:@"last_name"];
                self.appname = [jsonDic valueForKey:@"name"];
                self.appemailId = [jsonDic valueForKey:@"email"];

                [self LoginAPI];
                    if ([self.navigation.presentedViewController isKindOfClass:[LoginPage class]]) {
                    [self.navigation.presentedViewController dismissViewControllerAnimated:YES completion:nil];
                }
            }
                break;
            case FBSessionStateClosed:
            case FBSessionStateClosedLoginFailed:
                [self.navigation popToRootViewControllerAnimated:NO];
                            [self showLoginView];
                [self fbDidLogout];

                break;
                    default:
                break;
        }
        if (error)
        {
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [alertView show];
        }
  }

为了通过Facebook登录进入应用程序,您可以通过这个样本登录

希望这能帮你..。

票数 8
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17268945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档