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 促进民营经济健康发展高质量发展 7918698
- 2 特朗普希望中国领导人访美 中方回应 7985256
- 3 2025年8省份将不再分文理科 7836440
- 4 高水平对外开放再升级 7752018
- 5 国产剧告别“假穷人” 7653780
- 6 土拨鼠为什么会突然大叫 7533156
- 7 女子抱孩子深夜投河 孩子仅两岁 7421379
- 8 工作室辟谣胡歌得肺癌住院 7304175
- 9 男子时隔6年回老家发现老猫还在守家 7206067
- 10 员工偷换理发店收款码3年窃取189万 7162490