storeCookies method
Stores cookies from a response for a domain
Implementation
void storeCookies(String domain, List<Cookie> cookies) {
if (cookies.isEmpty) return;
// Get existing cookies for this domain
final existingCookies = getCookies(domain);
final cookieMap = {for (var cookie in existingCookies) cookie.name: cookie};
// Update with new cookies
for (var cookie in cookies) {
if (cookie.expires != null && cookie.expires!.isBefore(DateTime.now())) {
// Cookie is expired, remove it
cookieMap.remove(cookie.name);
} else {
// Update or add the cookie
cookieMap[cookie.name] = cookie;
}
}
// Convert cookies to a serializable format
final serializedCookies =
cookieMap.values.map((cookie) {
return {
'name': cookie.name,
'value': cookie.value,
'domain': cookie.domain,
'path': cookie.path,
'expires': cookie.expires?.millisecondsSinceEpoch,
'httpOnly': cookie.httpOnly,
'secure': cookie.secure,
};
}).toList();
// Store the cookies
_prefs?.setString(_cookieKeyPrefix + domain, jsonEncode(serializedCookies));
}