Skip to content

Commit

Permalink
fix(iOS): Clear cookie belonging to specified url (#147)
Browse files Browse the repository at this point in the history
Co-authored-by: Quek Ruo Ling <ruoling.quek@ufinity.com>
  • Loading branch information
qroll and Quek Ruo Ling authored May 11, 2022
1 parent 7d65519 commit 9867cbd
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions ios/RNCookieManagerIOS/RNCookieManagerIOS.m
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ + (BOOL)requiresMainQueueSetup
WKHTTPCookieStore *cookieStore = [[WKWebsiteDataStore defaultDataStore] httpCookieStore];
[cookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *allCookies) {
for (NSHTTPCookie *cookie in allCookies) {
if ([name isEqualToString:cookie.name]) {
if ([name isEqualToString:cookie.name] && [self isMatchingDomain:topLevelDomain cookieDomain:cookie.domain]) {
[foundCookiesList addObject:cookie];
foundCookies = @YES;
}
Expand All @@ -212,7 +212,7 @@ + (BOOL)requiresMainQueueSetup
} else {
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *c in cookieStorage.cookies) {
if ([[c name] isEqualToString:name]) {
if ([[c name] isEqualToString:name] && [self isMatchingDomain:url.host cookieDomain:c.domain]) {
[cookieStorage deleteCookie:c];
foundCookies = @YES;
}
Expand Down Expand Up @@ -337,4 +337,14 @@ -(NSDictionary *)createCookieData:(NSHTTPCookie *)cookie
return cookieData;
}

-(BOOL)isMatchingDomain:(NSString *)originDomain
cookieDomain:(NSString *)cookieDomain
{
if ([originDomain isEqualToString: cookieDomain]) {
return @YES;
}
NSString *parentDomain = [cookieDomain hasPrefix:@"."] ? cookieDomain : [@"." stringByAppendingString: cookieDomain];
return [originDomain hasSuffix:parentDomain];
}

@end

0 comments on commit 9867cbd

Please # to comment.