iOS AFOAuth2Manager使用心得

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);
          }]; 
时间: 2024-11-06 01:08:02

iOS AFOAuth2Manager使用心得的相关文章

【原】使用Bmob作为iOS后台开发心得——查询关联关系(BmobRelation)

简介 Bmob中的数据关联分为Pointer和Relation两种(数据关联在我开发app过程中使用还是很频繁的,也算个难点.虽然之前没有学过数据库,但是觉得还是有必要熟悉和掌握它),对此,Bmob官方文档已经介绍得很详细了. 基本上查看文档就可以解决大部分数据关联的问题(Bmob的文档真心要赞一下).这里我记录下当时我最难理解的一个部分——查询关联关系. 还是使用官方文档的事例来学习(这一处官网有些地方的objectId书写错了,记录下时间2015-09-14). Post表(所有用户发表的文

【原】使用Bmob作为iOS后台开发心得——云端代码添加其他User的Relation关系

问题描述 我在User表中增加了两个列,分别为“我关注的人”(Relation关系)和“我的粉丝”(Relation关系)当我关注某个人的时候,一方面我要添加他到“我关注的人”,另一方面在他的粉丝中要将我添加上去.看起来很简单,但是实际中操作时,使用bmob sdk中的updateInBackgroundWithResultBlock会遇到我想更新别人的User信息,是无法成功的,因为权!限! 解决方法 这里就得使用Bmob给我们提供的Master Key了(慎用,因为权限太大). functi

【转】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得

iOS模拟器简介 iOS功能简介 iOS模拟器,是在Mac下面开发程序时,开发iOS平台的程序时候,可以使用的辅助工具. 其功能是,帮你模拟iOS平台设备,在模拟器上运行对应的程序,以方便你没有实体设备的时候去调试程序. iOS所支持(模拟)的设备 我此处的iOS 5.1的模拟器,支持的设备有4个: 即: iPad iPad(Retina) iPhone iPhone (Retina) 如何打开iOS模拟器 Xcode编译iOS项目后自动打开iOS模拟器(去调试当前程序) 在调试Xcode中的i

【整理】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得

[整理]Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得 iOS模拟器简介 iOS功能简介 iOS模拟器,是在Mac下面开发程序时,开发iOS平台的程序时候,可以使用的辅助工具. 其功能是,帮你模拟iOS平台设备,在模拟器上运行对应的程序,以方便你没有实体设备的时候去调试程序. iOS所支持(模拟)的设备 我此处的iOS 5.1的模拟器,支持的设备有4个: 即: iPad iPad(Retina) iPhone iPhone (Retina) 如何打开iOS模拟器 Xco

IOS开发经验分享

一些IOS开发的心得: 1) [Multiple Threads] IOS多线程注意, 所有的UI操作都必须在主线程上: Any code that will update the UI should be done on the main thread. Data loading should typically be done in some background thread. 示例: [self performSelectorOnMainThread:@selector(updateTh

iOS开发常用三方库、插件、知名博客等等

TimLiu-iOS   Swift版本点击这里 欢迎加入QQ交流群: 594119878 介绍 这是一个用于iOS开发的各种开源库.开源资料.开源技术等等的索引库. github排名 https://github.com/trending,github搜索:https://github.com/search 使用方法 根据目录关键字搜索,记得包含@,以保证搜索目录关键字的唯一性. 问题反馈 期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交issues即可).请广大网友只

iOS 开发 UI 搭建心得(一)—— 驾驭 StoryBoard

本系列文章中,我们将一起认识.了解当下 iOS 开发中几种常见的 UI 构建方式,分析他们分别适合的使用场景,以便让我们在以后的开发中,能够在恰当的时间.场景下做出最佳的选择,提升开发效率,增强程序的可维护性.本文作 为开篇,我们将一起尝试驾驭强大的 Storyboard. StoryBoard 的本质 StoryBoard 是苹果在 iOS 5 中引入的新技术方案,目的是给纷繁复杂的 nib.xib 们一个温暖的家,让他们之间的关系更直观地展示出来,并提供了一种新的页面间跳转方式 segue.

React Native iOS原生模块开发实战|教程|心得|如何创建React Native iOS原生模块

尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691432) 前言 一直想写一下我在React Native原生模块封装方面的一些经验和心得,来分享给大家,但实在抽不开身,今天看了一下日历发现马上就春节了,所以就赶在春节之前将这篇博文写好并发布(其实是两篇:要看Android篇的点这里<React Native Android原生模块开发>). 我平时在用React Nativ

iOS学习心得——UITableViewCell的复用

UITableView是在iOS开发中最常用的控件之一.我的第一篇学习心得献给它了 UITableView是由一行一行的UITableViewCell构成的. 首先想这样一个问题:现在用UITableView去做一个联系人列表,如果我有10个100个联系人,那我可以建10个100    个UITableViewCell,但是如果有一千一万个呢,创建这么多Cell是不是会很影响手机的性能并且造成不好的用户体验呢? 因此,苹果官方给出的解决方案是采用复用机制. 什么是复用机制?简单点回答:如果有我就