iOS开发实战之Cookie注入
点击上方“iOS开发”,选择“置顶公众号”
关键时刻,第一时间送达!
Cookie注入的使用场景:
在开发中,我们常常会遇到这样一种场景:通过在一部分网络请求中注入Cookie信息让后台校验当前用户的登录状态以及用户权限
在APP中打开一个需要登录用户才能看的页面,一般客户端会先判断是否登录,如果没有登录去登录。缺点每次都要判断,如果是付费内 容,还要引导用户去支付,这些都要去后台发起多个请求,去判断,增加了网络开销,如果逻辑处理的不够严谨,容易出错
Cookie的注入可以解决上面的问题,一次请求将用户信息发送给后台,让后台判断给你什么数据,你只用按约定判断返回的字段,做出相应的处理即可,这样减少了用户请求的次数,减轻了服务器的负载,也省了用户的流量
第一步:获取登录成功的请求标识:如PHPSESSID=495njbid8as3o79bjqh1mocl22
注:"PHPSESSID"这个字段名不同的服务器配置不同,名称也不同,可以询问后台,不过我建议还是自己去抓包查看,这里我使用的抓包工具是:Charles,网上有破解版的。
一般客户端会在登录成功的回调里面获取Set-Cookie,对Set-Cookie处理获取内部的"PHPSESSID=495njbid8as3o79bjqh1mocl22"
我们先通过抓包工具来看看登录成功返回的信息:


注意:这里我们可以看到三条Set-Cookie信息,这是服务器端告诉你下次请求的时候需要在请求头中加入这三条信息。只是第二条和第三条是用户的账户名和经过MD5加密的密码,这个我们就是我们上传给服务器的,不用提取,不过需要按照"topmasteruserName=17737199679;"这种服务器要求的格式拼接Cookie字符串。



拼接Cookie字符串

(1)AFNetworking 注入Cookie
[manager.requestSerializer setValue:[FunctionFast getCookieFromUserDefault] forHTTPHeaderField:@"Cookie"];
(2)UIWebView中请求注入Cookie,一般公司限制会员/付费用户才能查看
- (void)requestData {
NSURL *url = [NSURL URLWithString:self.url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]; // 注入Cookie
[request setValue:[FunctionFast getCookieFromUserDefault] forHTTPHeaderField:@"Cookie"];
[self.webView loadRequest:request];
}
到这里已经满足基本需求了,其他细节如注入Cookie后的请求包的解析,还有WKWebView的Cookie注入后续更新介绍...,如有错误的地方,欢迎亲们指正。
亲们喜欢的话,请给个❤️ 额,谢谢亲们的支持!!!

作者:Mint丶bin
链接:http://www.jianshu.com/p/14de639f008e
iOS开发整理发布,转载请联系作者授权
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 勇敢夺枪老人与妻子相拥倒在现场 7808158
- 2 中美卫星惊险“擦肩”距离仅200米 7714036
- 3 明年经济工作政策取向确立这八个字 7619105
- 4 哈尔滨一男子冻到血管破裂 7523911
- 5 男子陪女友逛街买刮刮乐中80万元 7426308
- 6 30万级的玛莎拉蒂两天被一抢而空 7329518
- 7 扫地机器人鼻祖要破产了 7235454
- 8 大屠杀幸存者在悉尼枪击案中弹身亡 7140958
- 9 如何让你我的钱袋子鼓起来 7040510
- 10 “中国最冷小镇”最低温降至-39℃ 6944543











iOS开发
