我有一个应用程序,我使用AFNetworking进行网络连接。 我正在与之交谈的服务使用Basic Auth进行身份验证。 所以在我的客户端,我使用setAuthorizationHeaderWithUsername:password:方法设置用户名和密码,一切正常。
现在我应该在应用中添加“在浏览器中打开”按钮。但是当我调用URL时,我的iPhone / iPad上的Safari会希望用户再次登录。
有没有解决方案我可以设置登录默认cookie存储区时获得的cookie?
到目前为止我尝试的是:
NSString* authorization = [client defaultValueForHeader:@"Authorization"];
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:@"myCookie" forKey:NSHTTPCookieName];
[cookieProperties setObject:authorization forKey:NSHTTPCookieValue];
[cookieProperties setObject:@"www.the.server" forKey:NSHTTPCookieDomain];
[cookieProperties setObject:@"www.the.server" forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];
NSHTTPCookie* cookie = [[NSHTTPCookie alloc] initWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
这给了我一个cookie,但是当我在iPhone / iPad上打开Safari中的URL时它无法正常工作
AFNetworking中是否有任何API调用可以处理?或者我有办法手动自己做吗?
感谢您的帮助
答案 0 :(得分:1)
不,每个应用都有自己的沙箱。没有办法与Safari共享cookie。