我使用下面的代码来构造NSHTTPCookie,但是没有选项可以设置cookie的httpOnly标志
[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];发布于 2015-05-20 07:35:02
来自苹果公司的文档:
HTTPOnly性质 一个布尔值,指示接收器是否只应按照RFC 2965发送到HTTP服务器。(只读) 声明 斯威夫特 var HTTPOnly: Bool { get } 目标-C @property(readonly,getter=isHTTPOnly) BOOL HTTPOnly返回是,如果这个cookie只应该通过headers发送,而不是其他。 Cookies只能由服务器(或javascript)标记为HTTP。标记为这样的cookie只能通过HTTP请求中的Headers发送,这些请求与相应cookie的路径和域匹配。
您只能从服务器或通过javascript设置HTTPOnly标志。这在本机iOS应用程序代码中是不可能的。
发布于 2017-01-17 12:44:36
有一个未记录的cookie属性密钥 (通过@mikewest找到):
// NSHTTPCookie的无证财产。 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) // truehttps://stackoverflow.com/questions/27719699
复制相似问题