문제 요약 : MKNetworkKit
을 사용하고 있으며 Basic Auth를 사용하여 REST 서버에 대해 자신을 인증합니다. 저는 서버 측의 세부 설정에 대한 전문가입니다. SSL을 사용하지 않고 기본 인증을 받겠습니다.MKNetworkKit : 인증 관련 캐싱을 지우는 방법
유효한 사용자/비밀번호로 인증을 받고 2 번째로 가짜 입력을하면 그 인증은 계속 성공합니다. 설명서를 읽고 다음을 시도했습니다.
[op setCredentialPersistence:NSURLCredentialPersistenceNone];
작동하지 않습니다. 하지만 내가 이렇게하면 :
[op setCredentialPersistence:NSURLCredentialPersistenceNone];
[op addHeader:@"Cookie" withValue:@""]; // a hunch I tried
그런 것 같았습니다. 이는 마치 일부 쿠키가 항상 전달되고 있으며 서버가 인증 헤더를 확인하지 않고도이를 수용하는 것과 같습니다. 나는이 순서 (좋은, 가짜, 좋은)와 (가짜, 좋은, 가짜) 순서대로 물건을 제공 할 몇 가지 테스트를 수행했으며 예상대로 작동하는 것으로 보였다.
이제 누군가가 어떻게 작동해야하는지, 어딘가에 버그가 있어야합니다 (MKNetworkKit
또는 서버 쪽)? NSURLCredentialPersistenceNone
을 설정하면 쿠키 헤더를 추가하면 왜 효과가 있습니까? 그것은 그것이 보낸 행동을 덮어 썼을 것이고 틀린 행동을 일으켰을 것이고, 따라서 그것을 "고정"할 것입니다.
아마도 서버는 인증 후에 세션 쿠키를 추가합니다. 요청 전과 응답을 받으면'[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]'를 로그에 기록하십시오. – Moxy