公司要做注册登录,业务逻辑然而不是用的token.
后台跟我讲了一堆的http协议的原理.... 心里无限神兽奔腾而过.......
http 里面有请求头,请求体 ,请求体 里面有会话 Session 还有一个SessionID
客户端要做的事情,第一次登录的时候把它保存起来.
第二次登录的时候 把它取出来 设置到cookie 里面去 把原来cookie里面的SessionID 替换掉...
不管你们怎么看..反正我当时就懵逼了...网上各种找博客,文章...马丹,一个技术文章抄袭的到处都是,有意思吗? 不过自己也是伸手党..现在来分享下我是怎么实现吧.
在夜深人静的时候,一阵凉风吹过,蛋蛋凉了... 我突然想到所有的cookie 有应该要有一个失效时间..不然怎么判断是否失效了呢? 失效时间,失效时间...卧了个槽.我简直舍近求远了...
那么我是不是不应该从AFN来修改它的请求入手了... 直接把失效时间设置的长一些.那么时间到了.用户就要重新登录了..这样不就达到了自动登录的目的吗?哈哈哈
下面看代码. (声明这段代码也不知道从来拿抄过来的了..)
NSHTTPCookieStorage* cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray*cookies = [cookieStorage cookiesForURL:[NSURL URLWithString:URLLogin]]; NSMutableArray*propertiesList = [[NSMutableArray alloc] init];
[cookies enumerateObjectsUsingBlock:^(NSHTTPCookie * _Nonnull cookie, NSUInteger idx, BOOL * _Nonnull stop) {
NSMutableDictionary *properties = [[cookie properties] mutableCopy];
//将cookie过期时间设置为一年(是不是有点变态???)
NSDate *expiresDate = [NSDate dateWithTimeIntervalSinceNow:3600*24*30*12];
properties[NSHTTPCookieExpires] = expiresDate;
//下面一行是关键,删除Cookies的discard字段,应用退出,会话结束的时候继续保留Cookie
[properties removeObjectForKey:NSHTTPCookieDiscard];
// 重新设置cookie
[cookieStorage setCookie:[NSHTTPCookie cookieWithProperties:properties]];
}];
直接把代码拷贝到你登录成功 需要保存cookie的地方..把失效时间设置为一年哈哈哈...自动登录完成.