AFNetworking으로 세션을 관리하는 방법은 무엇입니까?
제목에서 알 수 있듯이 응용 프로그램이 서버와 통신하는 iOS 프로젝트에서 AFNetworking을 사용하고 있습니다. 사용자가 로그인하면 서버는 성공 플래그를 다시 전송하여 응답하고 응답 헤더에는 세션 ID가 포함됩니다.
AFNetworking이 모든 후속 요청과 함께 세션 ID를 자동으로 보내는 지 궁금합니다. 아니면 어떤 방식 으로든 직접 처리해야합니까?
참고로, 요청이 인증되는 방식과 관련하여 백엔드를 제어 할 수 없습니다. 저는 서버와 통신하는 클라이언트 만 구축하고 있습니다.
예, 다음 요청이 전송되기 전에 쿠키가 만료되지 않는 한 로그인하면 세션 ID가 자동으로 전송되어야합니다 (중요한 세부 정보). NSURLConnection
AFNetworking에서 사용하는에서 이에 대한 세부 정보를 자동으로 처리합니다.
백엔드에서 AFNetworking은 NSURLConnection
자동으로 업데이트 NSHTTPCookieStorage
되어 세션을 저장합니다. 쿠키 저장소를 망쳐 서 적절하다고 판단되는 쿠키를 조작하거나 삭제할 수 있습니다.
로그인하지 않은 상태로 서비스에 표시하려면 해당 도메인에 연결된 세션 쿠키를 삭제하면됩니다. 이미 로그인 한 상태에서 다시 로그인을 시도하면 함께 작업 한 일부 서비스에서 오류가 발생합니다. 또한 로그인 상태를 확인할 방법이 없었습니다. 빠른 수정, URL에서 쿠키를 가져 와서 삭제하십시오.
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: networkServerAddress];
for (NSHTTPCookie *cookie in cookies)
{
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
이것은 상호 작용하는 서비스에서 제공하는 사양에 따라 다릅니다. 나는 유사한 서비스로 작업했고 그들은 그들의 문서에 명시 적으로 다음과 같이 명시했습니다. 세션을 유효하게 유지하려면 몇 초마다 int "1"을 전송하여 서비스를 폴링해야합니다.
그러나 가능하다면 우리가 읽을 수있는 서비스 이름이나 참조를 게시 할 수 있습니다. 회사의 비공개 API 인 경우 반환하는 세션 ID의 사용을 설명 했어야합니다.
기본 기술이 처리하지만 이러한 쿠키를 유지하려면 다른 질문에 대한 답변입니다.
참조 URL : https://stackoverflow.com/questions/10984374/how-to-manage-sessions-with-afnetworking
'UFO ET IT' 카테고리의 다른 글
서브 클래 싱 할 때 Objective-c와 swift 혼합 (0) | 2021.01.07 |
---|---|
디버그 모드에서 실행되지 않는 경우에도 "디버거 연결 대기 중"표시 (0) | 2021.01.06 |
멤버 변수를 클래스 멤버로 참조 (0) | 2021.01.06 |
Pandas DataFrame에서 쉼표가있는 숫자 문자열을 부동 소수점으로 변환 (0) | 2021.01.06 |
'cordova build ios --release'를 사용하여 iPhone 앱을 배포 (.ipa 생성)하려면 어떻게해야합니까? (0) | 2021.01.06 |