1
我在我的應用程序一個UIWebView,我「M加載我的應用程序的Facebook的個人資料。我在Facebook上使用Facebook的單點登錄(Graph API)。我使用我的應用程序在後臺在Safari中登錄Facebook。但是當我在應用程序Web視圖中嘗試loadmy遊戲配置文件時,仍然可以看到「登錄」和「註冊」按鈕。 我嘗試設置cookie,主文檔URL和相對URL,但沒有用。 我這裏也將在這裏我的代碼,Facebook頁面中的UIWebView
NSURL *url = [NSURL URLWithString:@"http://www.facebook.com/myapp" relativeToURL:[NSURL URLWithString:@"http://login.facebook.com"]];
NSMutableURLRequest *request = nil;
if(url)
request = [NSMutableURLRequest requestWithURL:url];
NSArray * availableCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"http://login.facebook.com"]];
NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:availableCookies];
if(request)
{
[request setHTTPShouldHandleCookies:YES];
[request setMainDocumentURL:[NSURL URLWithString:@"http://login.facebook.com"]];
[request setAllHTTPHeaderFields:headers];//login.facebook.com
[mWebView loadRequest:request];
}
非常感謝您的回覆。這意味着我們無法獲取Facebook的cookies。 – YPK
據我所知,在iOs上,您無法獲取Facebook應用程序正在使用的Cookie或移動Safari正在使用的Cookie。如果您在未打開其他兩個(例如,如果它們不可用)的情況下獲得訪問令牌,則Cookie將位於您的應用的本地,您可以使用它們。可以稍微修改Facebook iOS SDK來強制這種情況。但是,這樣做意味着您放棄了官方Facebook應用用戶的單點登錄。 – giff
這不會啓用對facebook.com cookie的惡意使用嗎?應用程序開發人員可能似乎要求用戶「用facebook登錄」,在登錄成功時捕獲facebook.com cookie並使用它們代表用戶行事。我在這裏錯過了什麼嗎? – Esteban