【问题标题】:AFNetworking Persisting Cookies AutomaticallyAFNetworking 自动持久化 Cookie
【发布时间】:2016-11-17 18:39:08
【问题描述】:

在:This Question 据说AFNetworking 在后台自动处理 cookie,但在我问的Previous 问题中,当我在 php 中创建的服务器上保持会话时遇到问题登录。一旦我关闭(停止在 Xcode 中调试)应用程序并返回会话就消失了。答案是像这样持久化 cookie 来解决问题:

NSData *cookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"User"];
if ([cookiesData length] > 0) {
     for (NSHTTPCookie *cookie in [NSKeyedUnarchiver cookiesData]) {
           [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
      }
}

当我尝试执行此类操作时,这会导致应用崩溃。当我登录时,我像这样设置 NSUserDefault:

[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"User"];
//Then synthesize

这是错误的使用方式吗? NSHTTPCookieStorage 甚至是我的问题吗?谢谢。

【问题讨论】:

    标签: ios session afnetworking nshttpcookie


    【解决方案1】:

    使用以下方法,这是保存和加载对我有用的 cookie 的正确方法:

    - (void)saveCookies{
    
        NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject: [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        [defaults setObject: cookiesData forKey: @"sessionCookies"];
        [defaults synchronize];
    
    }
    
    - (void)loadCookies{
    
        NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData: [[NSUserDefaults standardUserDefaults] objectForKey: @"sessionCookies"]];
        NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    
        for (NSHTTPCookie *cookie in cookies){
            [cookieStorage setCookie: cookie];
        }
    
    }
    

    希望对你有帮助!

    【讨论】:

    • 请记住将会话 cookie 存储在 NSUserDefaults 中是一个糟糕的主意,因为它以未加密的方式存储在应用程序沙箱中。考虑改用钥匙串
    • 它似乎和将它们存储在网络浏览器中一样安全......或者我错过了什么?
    • 由于某种原因,我无法让它工作。即使在 [self loadCookies] 中分析的 cookie 看起来有效,它也会导致崩溃。 'NSInvalidArgumentException',原因:'-[__NSCFDictionary objectAtIndexedSubscript:]:无法识别的选择器发送到实例
    猜你喜欢
    • 2016-06-24
    • 2012-08-09
    • 2011-02-20
    • 1970-01-01
    • 2013-05-14
    • 2017-04-29
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多