objective-c – 如何清除NSHTTPCookieStorage中的cookie多一次?

objective-c – 如何清除NSHTTPCookieStorage中的cookie多一次?,第1张

概述我的桌面应用程序连接到托管在Google App引擎上的Web应用程序.一旦它进行身份验证,它就会得到一个它所传递的authtoken cookie,以便将来的所有请求.一切都奏效 但现在我想添加“退出”.我试图执行这样的签出: - (void)signOut { NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage share 我的桌面应用程序连接到托管在Google App引擎上的Web应用程序.一旦它进行身份验证,它就会得到一个它所传递的authtoken cookie,以便将来的所有请求.一切都奏效

但现在我想添加“退出”.我试图执行这样的签出:

- (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服务交互的应用程序中始终实现“注销”功能?

谢谢,
杰西

解决方法 理论:还有其他相关的cookie不在您的服务网址下,因为某些请求会导致重定向,从而可能会在您的系统上获取或设置cookie.

另外:我推荐using tcpdump for debugging.你可以看到网络上正在发生什么,并确切知道发送或接收的cookie.

总结

以上是内存溢出为你收集整理的objective-c – 如何清除NSHTTPCookieStorage中的cookie多一次?全部内容,希望文章能够帮你解决objective-c – 如何清除NSHTTPCookieStorage中的cookie多一次?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1031748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存