但现在我想添加“退出”.我试图执行这样的签出:
- (voID)signOut { NShttpcookiestorage *cookieStorage = [NShttpcookiestorage sharedhttpcookiestorage]; for (NShttpcookie *each in [[[cookieStorage cookiesForURL:[NSURL URLWithString:self.serviceRootURLString]] copy] autorelease]) { [cookieStorage deletecookie:each]; } [self clearCredentialStorage];}
问题在于它只是第一次工作.例如我可以打开我的应用程序登录.提出一些请求.登出.然后下次我提出请求时,我被要求再次进行身份验证.好!
但是,当我第二次认证问题发生后.验证工作.我得到authtoken cookie.我可以提出要求但是当我第二次尝试注销(不重新启动我的应用程序)时,authtoken cookie似乎没有被删除.它似乎从我的应用程序的角度删除…我问NShttpcookiestorage的cookie它有我的URL,它不返回.但是如果我尝试提出另一个请求(应该需要authtoken cookie),请求就可以正常工作,我没有得到401响应,我再也不会被要求进行验证.
所以如果我正确地理解东西,似乎cookies从我的角度被删除,但是它们没有从底层URL加载框架的角度被删除.
可能的兴趣,也许这个问题是有关的:http://www.macworld.com/article/143343/2009/10/safaricookieproblems.html
有没有人知道如何在与Web服务交互的应用程序中始终实现“注销”功能?
谢谢,
杰西
另外:我推荐using tcpdump for debugging.你可以看到网络上正在发生什么,并确切知道发送或接收的cookie.
总结以上是内存溢出为你收集整理的objective-c – 如何清除NSHTTPCookieStorage中的cookie多一次?全部内容,希望文章能够帮你解决objective-c – 如何清除NSHTTPCookieStorage中的cookie多一次?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)