Skip to content

Commit 9867cbd

Browse files
qrollQuek Ruo Ling
andauthored
fix(iOS): Clear cookie belonging to specified url (#147)
Co-authored-by: Quek Ruo Ling <[email protected]>
1 parent 7d65519 commit 9867cbd

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

ios/RNCookieManagerIOS/RNCookieManagerIOS.m

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ + (BOOL)requiresMainQueueSetup
195195
WKHTTPCookieStore *cookieStore = [[WKWebsiteDataStore defaultDataStore] httpCookieStore];
196196
[cookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *allCookies) {
197197
for (NSHTTPCookie *cookie in allCookies) {
198-
if ([name isEqualToString:cookie.name]) {
198+
if ([name isEqualToString:cookie.name] && [self isMatchingDomain:topLevelDomain cookieDomain:cookie.domain]) {
199199
[foundCookiesList addObject:cookie];
200200
foundCookies = @YES;
201201
}
@@ -212,7 +212,7 @@ + (BOOL)requiresMainQueueSetup
212212
} else {
213213
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
214214
for (NSHTTPCookie *c in cookieStorage.cookies) {
215-
if ([[c name] isEqualToString:name]) {
215+
if ([[c name] isEqualToString:name] && [self isMatchingDomain:url.host cookieDomain:c.domain]) {
216216
[cookieStorage deleteCookie:c];
217217
foundCookies = @YES;
218218
}
@@ -337,4 +337,14 @@ -(NSDictionary *)createCookieData:(NSHTTPCookie *)cookie
337337
return cookieData;
338338
}
339339

340+
-(BOOL)isMatchingDomain:(NSString *)originDomain
341+
cookieDomain:(NSString *)cookieDomain
342+
{
343+
if ([originDomain isEqualToString: cookieDomain]) {
344+
return @YES;
345+
}
346+
NSString *parentDomain = [cookieDomain hasPrefix:@"."] ? cookieDomain : [@"." stringByAppendingString: cookieDomain];
347+
return [originDomain hasSuffix:parentDomain];
348+
}
349+
340350
@end

0 commit comments

Comments
 (0)