서버에 대한 두 개의 비동기 호출이 있습니다. Call A는 사용자를 인증하고 세션 토큰을 반환합니다. 호출 B는 서버에서 데이터를 가져옵니다. 호출 B는 호출 A의 세션 토큰이 필요하므로 서버는 요청을 승인하고 데이터를 리턴합니다.비동기 호출로 자동 다시 로그인
10 분 후에 세션 토큰이 만료되고 서버가 B를 호출하기 위해 데이터를 반환하지 않습니다.이 시나리오에서는 재 인증을 위해 전화 A를 다시하고 통화에 사용할 수있는 새 유효한 세션 토큰을 얻어야합니다 B.
내가 직면 한 문제는 내가 이것을 자동화하고 깨끗한 디자인으로 구현하는 방법을 모른다는 것입니다. B 호출이 "세션이 만료되었습니다."라는 메시지가 서버에서 수신되면 비동기 호출 A가 시작되고 A 호출에서 제공된 새 세션 토큰으로 자체가 다시 시작되는 방식으로 구현하고 싶습니다. Objective-C 및 iOS 프레임 워크에서 제공하는 도구는 무엇입니까?
아무 것도 설명되어 있지 않습니다. 재 인증의 필요성을 감지하려면 상태 플래그 (예 : BOOL이 만기 됨)가 필요할 것입니다. 아마도 플래그 테스트와 함께 하나의 재귀 메시지를 사용했을 것입니다. –
[URL 로딩 시스템 프로그래밍 가이드] (https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/URLLoadingSystem/URLLoadingSystem.html#//apple_ref/doc/uid/10000165- BCICJDHA), 특히 "쿠키 저장"장 및 인증에 대한 모든 장을 참조하십시오. 액션 과정은 밑의 네트워크 요청에 대해 NSURLSession, NSURLConnection 또는 NSURLDownload 객체를 사용하는지 여부에 따라 달라지며 세션 토큰이 처리되는 방법에 따라 다릅니다. 이를 쿠키로 처리하면 기존 코드를 많이 추가 할 필요가 없을 것입니다. – CouchDeveloper