iOS session验证

和后台一起做demo,验证验证码后台需要根据session分辨我的验证码是iOS传的还是android传的。做一下小记录。

iOS中的session存放在cookie中,cookie就像多个字典.其中的一个放着我们要的session。

我需要的那条cookie打印出来是:

<NSHTTPCookie version:0 name:"JSESSIONID" value:"6A33E2CA6AB31D11DC8AB1A63CA0DF76" expiresDate:(null) created:2016-12-20 02:40:46 +0000 (5.03894e+08) sessionOnly:TRUE domain:"192.168.1.100" path:"/webspring/" isSecure:FALSE>

其中JSESSIONID对应的值6A33E2CA6AB31D11DC8AB1A63CA0DF76就是我想要的了,这个是后台需要验证的东西。

我的做法是在第一次请求成功后,拿到session的值,保存下来

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

DDLog(@"cookieStorage: %@", cookieStorage);

for (NSHTTPCookie *cookie in [cookieStorage cookies]) {

DDLog(@"-----cookie: %@", cookie);

if ([

cookie.name isEqualToString:@"JSESSIONID"]) {

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults setValue:cookie.value forKey:@"JSESSIONID"];

}

}


然后在下一次请求前把得到的session值赋值给session

NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];

[cookieProperties setObject:@"JSESSIONID" forKey:NSHTTPCookieName];

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[cookieProperties setObject:[userDefaults valueForKey:@"JSESSIONID"] forKey:NSHTTPCookieValue];

NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];

然后后台就说我这session操作可以了。自己不是很懂,参考网址iOS开发session验证问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容