2014-02-12 5 views
0

사용자가 다른 외부 서비스 (OAuth)에서 계정에 연결할 수있는 OS X 응용 프로그램에서 작업하고 있습니다. 이렇게하려면 Webview에서 내 API 페이지 (Rails 앱)를 열어야합니다.이 API는 연결할 서비스로 사용자를 리디렉션합니다. 이 과정이 끝나면 사용자가 API에서 다시 리디렉션되어 연결이 정상적으로 작동하는지 여부를 알려줍니다.Webview의 인증 세션

따라서 사용자는 외부 서비스 웹 사이트의 OAuth 프로세스 전과 후에 API에서 인증을 받아야합니다. Webview를 열면 URL의 매개 변수로 액세스 토큰을 사용하여 사용자가 인증되고 외부 서비스로 리디렉션되면 정상적으로 작동합니다. 하지만 매우 자주 사용자가 연결 후 내 API로 리디렉션 될 때 그는 더 이상 인증되지 않습니다 (하지만 가끔은 작동 함). 그냥하지 않는 것

<NSHTTPCookie version:0 name:"_..._api_session" value:... expiresDate:(null) created:2014-02-12 19:16:00 +0000 (4.13925e+08) sessionOnly:TRUE domain:... path:"/" isSecure:FALSE> 

는 유지하기에 충분하기 : 나는

[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:] 

을 통해 내 응용 프로그램에 대한 기존의 쿠키를 검사 할 때

나는 나의 API에 대한 세션 쿠키가 할 사용자 인증.

이것은 어디에서 유래 할 수 있습니까? 어떻게 든 Webview와 관련이있는 것 같습니다. 외부 브라우저에 사용자를 보내서이 모든 과정을 수행하면 정상적으로 작동하기 때문입니다. Webview에 세션 쿠키를 처리하는 특정 방법이 있습니까?

내가 충분히 구체적이지 않은지 잘 모르겠다. 다른 세부 정보가 필요한지 물어보십시오.

답변

0

마침내 문제가 무엇인지 알아 냈습니다.

내 앱은 영구 동기화 프로세스를 통해 내 API와 통신하며 access_token으로 인증되어야합니다. AFNetworking을 사용하여 앱 컨테이너에 세션 쿠키를 만듭니다.

Webview에서 다시 인증을 받으면 쿠키 세션도 생성됩니다. 어쨌든, 쿠키가 충돌하고 세션을 깰.

방금 ​​AFNetworking이 쿠키를 사용하지 않도록 말하면서 효과가있었습니다.