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 习近平G20里约峰会展现大国担当 7996456
- 2 多国驻乌克兰大使馆因袭击风险关闭 7969339
- 3 78岁老太将减持2.5亿股股票 7899798
- 4 二十国集团里约峰会将会卓有成效 7749932
- 5 俄导弹击中乌水电站大坝 7691893
- 6 孙颖莎王艺迪不敌日本削球组合 7539772
- 7 高三女生酒后被强奸致死?检方回应 7462450
- 8 第一视角记录虎鲨吞下手机全程 7304931
- 9 中国一捕捉宇宙幽灵粒子装置建成 7244979
- 10 智慧乌镇点亮数字经济新未来 7125165