objective-c - 我的应用程序的 [NSHTTPCookieStorage setCookie] 破坏了浏览器的 cookie?

标签 objective-c macos cocoa

我正在通过[NSHTTPCookieStorage setCookie]登录API。 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSHTTPCookieStorage_Class/Reference/Reference.html

如果我在浏览器打开时登录,且已使用同一用户登录同一网站,则应用程序和浏览器都将继续正常工作。

但是如果我退出我的浏览器,再次打开它,然后返回到该网站,cookie 就会丢失。用户尚未登录。

这是怎么回事,有没有办法强制应用程序使用与浏览器不同的 cookie?

或者,如果我们在应用程序之间“共享”cookie,有什么方法可以使用已登录用户的 cookie 登录我的应用程序,而不需要用户名/密码?

最佳答案

以下是根据您的要求创建新 cookie 的代码: (未在 XCode 中测试)

// Dictionary of attributes for the new cookie
NSDictionary *newCookieDict = [NSMutableDictionary 
                               dictionaryWithObjectsAndKeys:@".example.com", NSHTTPCookieDomain,
                                                            @"Test Cookie", NSHTTPCookieName,
                                                            @"/", NSHTTPCookiePath,
                                                            @"test1234567890", NSHTTPCookieValue,
                                                            @“2011-10-26 00:00:00 -0700", NSHTTPCookieExpires, nil];
// Create a new cookie
NSHTTPCookie *newCookie = [NSHTTPCookie cookieWithProperties:newCookieDict];

// Add the new cookie
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:newCookie];

特别注意字典的最后一个元素

关于objective-c - 我的应用程序的 [NSHTTPCookieStorage setCookie] 破坏了浏览器的 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882747/

相关文章:

ios - 修复了 UIPageViewController 的背景滚动效果

ios - OCMock - 访问部分模拟对象的弱属性会导致零星崩溃

objective-c - OS X Lion 中类似邮件的收藏夹栏

ios - 与 AFNetworking 集成时出现问题

iphone - 在 iOS 中以编程方式导航

python-3.x - 使用 anaconda 在 mac 中为 python3 安装 pygame

objective-c - 通过键盘快捷键的 xcode 3.2.1 文件历史记录

file - 在 cocoa 中保存文件

objective-c - 为什么在与 USB 转串行适配器通信时此串行通信代码会挂起?

macos - 导入错误:无法从 'SourceDistribution' 导入名称 'pip._internal.distributions.source'