2015-10-26 93 views
0

我試圖通過在我的OS X應用程序中打開Web視圖來登錄到Instagram並批准我的應用程序在我的OS X應用程序中。我試過刪除所有的Cookie ,使用彼此獨立的私人瀏覽。我不攔截請求/迴應。首先,當我嘗試打開驗證網址,我得到以下(正確)頁面無論是在我的應用程序和Safari瀏覽器:爲什麼WebView的行爲與Safari不同(隱私瀏覽)?

enter image description here

然而,當我輸入用戶名和密碼,如果Safari瀏覽器,我的Instagram帳戶打開後,重定向到應用程序,例如它會在當我在我的應用程序進入我的(顯然,下同)憑證,然後單擊登錄,我在10倍左右重定向循環轉回到同一個屏幕。

https://instagram.com/accounts/login/?force_classic_login=&next=/oauth/authorize/%3Fclient_id%3DMY_CLIENT_ID_REMOVED_FOR_SECURITY%26redirect_uri%3Dhttp%3A//my.redirect.url.removed.for.security%26response_type%3Dcode

如果我嘗試在Safari中訪問該URL,則會進入登錄屏幕(如果未登錄),然後我會重定向到正確的URL。

我試着輸入無效憑證,我得到一個不同的錯誤,所以它不是一個不正確的用戶名/密碼問題:

enter image description here

看起來像一個餅乾/重定向問題。我已經刪除了所有代表,以防他們攔截登錄機制,但無濟於事。

爲什麼我不能在Cocoa web視圖上登錄Instagram,而我完全可以在Safari中登錄?我正在使用最新的OS X 10.11.1和Safari 9.0.1。

回答

0

它顯然是一個Instagram自己的Cookie,它需要在應用程序的Cookie容器中忘記清除(我清除Safari的,但它不同於應用程序的容器)內的Cookie存儲重置

我已經添加了一個選項來清除應用程序啓動時的cookie:

NSHTTPCookieStorage *jar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
NSArray *cookies = jar.cookies; 
for (NSHTTPCookie *cookie in cookies) { 
    [jar deleteCookie:cookie]; 
} 

我調用這個代碼和問題走了。

相關問題