ios 开发之UIWebView 通过 cookie 完成自动登录

相信使用过UIWebView的小伙伴都遇见过在webView中输入相关账号和密码这样类似的情况,但在我们输入账号和密码后,当我们重新进入这个页面的时候又得重新上一步的操作,因此我们得通过cookie来完成自动登录操作。

1. 通过UIWebView登录后,会自动得到web服务器设置的cookie包括服务器中的sessionid。

2. cookie不会自动保存在APP中,需要通过设置才能在下次登录时获取。

3. 进行自动时,需要web服务器端进行cookie验证方式登录。

4. iOS在UIWebview中获取cookie的方法:NSHTTPCookieStorage *nCookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];

5. 通过[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie]方法将cookies来保存起来,但是这样虽然可以保存cookies但是你应用退出之后还是会丢失(其实是cookies过期的问题),做好的方法是把cookies放到NSUserDefaults保存起来。

实现方法:

1. 在UIWebView的代理方法中实现获取cookies并将cookies放到NSUserDefaultes中保存起来:

ios 开发之UIWebView 通过 cookie 完成自动登录_第1张图片
cookie 获取与保存

2. cookie获取后,在UIWebView加载url之前将获取保存好的cookies,并设置:


ios 开发之UIWebView 通过 cookie 完成自动登录_第2张图片
cookie设置

在这里要注意的是要在[self.webView loadRequest:req];之前设置获取cookies。实现方法很简单,在这里就不要贴上demo了。

你可能感兴趣的:(ios 开发之UIWebView 通过 cookie 完成自动登录)