2015-10-26 57 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]; 
} 

我调用这个代码和问题走了。

相关问题