2014-12-31 11 views
0
내가 NSHTTPCookie를 구성하려면 다음 코드를 사용하고

에 대한 Http 만 플래그를 설정하지만 애플의 문서에서 쿠키아이폰 OS : NSHTTPCookie

[cookieProperties setObject:@"name" forKey:NSHTTPCookieName]; 
[cookieProperties setObject:@"value" forKey:NSHTTPCookieValue]; 
[cookieProperties setObject:[NSNumber numberWithBool: NO] forKey:NSHTTPCookieDiscard]; 
[cookieProperties setObject:[dictionary objectForKey:@"isSecure"] forKey:NSHTTPCookieSecure]; 


[cookieProperties setObject:@"abc.xyz.com" forKey:NSHTTPCookieDomain]; 
[cookieProperties setObject:@"abc.xyz.com" forKey:NSHTTPCookieOriginURL]; 
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath]; 
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion]; 

답변

2

에 대한 Http 만 플래그를 설정할 수있는 옵션이없는 방법 :

은 HTTPOnly 속성

수신자가 RFC 2965에 따라 HTTP 서버에만 보내야하는지 여부를 나타내는 부울 값입니다. (읽기 전용)

선언

SWIFT

var HTTPOnly: Bool { get } 

목적-C

@property(readonly, getter=isHTTPOnly) BOOL HTTPOnly 

반환 YES이 쿠키 만 HTTP 헤더를 통해 전송해야하는지, 그렇지 않으면 NO .

쿠키는 서버 (또는 자바 스크립트)에서만 HTTP로 표시 될 수 있습니다. 쿠키로 표시된 쿠키는 해당 쿠키의 경로와 도메인과 일치하는 URL에 대한 HTTP 요청의 HTTP 헤더를 통해서만 보내야합니다.

경우에만 서버 또는 자바 스크립트를 통해 Http 만 플래그를 설정할 수 있습니다. 기본 iOS 응용 프로그램 코드를 통해 가능하지 않습니다.

+0

문자열 대신 NSHTTPCookieValue에 부울 값을 추가하는 방법은 무엇입니까? –

+0

이 답변은 완전히 정확하지 않습니다. httpOnly 쿠키를 만들 수있는 문서화되지 않은 속성이 있습니다. – Kim

2

은 (@mikewest을 통해 발견)을 undocumented cookie property key있다 : NSHTTPCookie의

// 문서화되지 않은 속성입니다.
NSString * const kNSHTTPCookieHttpOnly = @ "HttpOnly";

내가 Swift에서 시도한 코드는 예상 한대로 코드를 수행합니다.

import Foundation 

extension HTTPCookiePropertyKey { 
    static let httpOnly = HTTPCookiePropertyKey("HttpOnly") 
} 

let cookie = HTTPCookie(properties: [ 
    .domain: "example.org", 
    .path: "/", 
    .name: "Cookie Example", 
    .value: "Om nom nom", 

    .version: 1, // RFC2965 for HttpOnly cookies 
    .httpOnly: true 
])! 

print(cookie.isHTTPOnly) // true