码迷,mamicode.com
首页 > 移动开发 > 详细

iOS AFOAuth2Manager使用心得

时间:2016-04-03 23:51:55      阅读:1136      评论:0      收藏:0      [点我收藏+]

标签:

git地址:  https://github.com/AFNetworking/AFOAuth2Manager

 

这个库,不多说,实现OAuth 2.0授权访问。

确实可以减轻很大的负担,而且使用很容易。但是,我也是遭遇了挫折好几次才玩懂的。估计是自己太笨了。

 

 

 

 

NSURL *baseURL = [NSURL URLWithString:@"http://xxx.xxx.x.x:xxxx"];
    AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:baseURL];
    
    [manager POST:@"/OAuth/token"
       parameters:@{@"client_id":@"xxx",
                    @"client_secret":@"xxx",
                    @"grant_type":@"xxx",
                    }
          success:^(AFHTTPRequestOperation *operation, id responseObject) {
              NSLog(@"\n=============accessToken=================\n\n%@\n\n",responseObject);
              
              //! 存储credential,内含access_token
              AFOAuthCredential *credential = [[AFOAuthCredential alloc]initWithOAuthToken:[responseObject objectForKey:@"access_token"]
                                                                                 tokenType:[responseObject objectForKey:@"token_type"]];
              [credential setExpiration:[responseObject objectForKey:@"expires_in"]];
              
              //! 记录token过期时间,这里的token有效时间为1800s
              _tokenInvalidateTime = [NSDate dateWithTimeIntervalSinceNow:1770];
              
              //! 设置需要在Headers中加入的参数Authorization,_opManager为另一个AFHTTPRequestOperationManager,因为我这个例子里,二者使用的baseURL不同
              _opManager.requestSerializer = [AFHTTPRequestSerializer serializer];
              [_opManager.requestSerializer setAuthorizationHeaderFieldWithCredential:credential];
              //! 我这里并没有用做着提供的方法,将credential写入文件,
             //!  因为我是直接将Authorization的设置放在了这里完成
             //!  如果,我没有用到这_opManager
             //!  这里我就应该用[AFOAuthCredential storeCredential:credential withIdentifier:serviceProviderIdentifier];
             //!  这个方法将credential写入文件,
             //! 之后用AFOAuthCredential *credential =
        [AFOAuthCredential retrieveCredentialWithIdentifier:serviceProviderIdentifier];
             //!  方法在其他地方重新获取这个credential。credential里就还有token等信息
          }
          failure:^(AFHTTPRequestOperation *operation, NSError *error) {
              NSLog(@"\nAccessToken获取失败: %@", error);
          }]; 

 

iOS AFOAuth2Manager使用心得

标签:

原文地址:http://www.cnblogs.com/ficow/p/5351086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!