一个困扰几天的难题 cookie 登录

公司要做注册登录,业务逻辑然而不是用的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的地方..把失效时间设置为一年哈哈哈...自动登录完成.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容