Aus öffentlichen Paketdaten erstellte Orientierung.
Ein Dart-Paket zur Verwaltung von Cookies für HTTP-Anfragen, das eine nahtlose Handhabung von Cookie-Richtlinien und dauerhafte Speicherung über Sitzungen hinweg ermöglicht. Es integriert sich in HTTP-Clients, um Cookies automatisch basierend auf Domänen- und Pfadregeln zu speichern, abzurufen und zu senden. Ideal für Anwendungen, die zustandsbehaftete Interaktionen mit Webdiensten erfordern, wie beispielsweise Anmelde-Sessions oder Benutzereinstellungen. Das Paket unterstützt mehrere Plattformen wie Android, iOS, macOS, Windows und Linux und gewährleistet konsistente Cookie-Verwaltung über Plattformen hinweg.
Anwendungsfälle
Verwaltung von Sitzungs-Cookies in Web-APIs
Beibehaltung des Benutzeranmeldezustands
Automatisierung der Cookie-Verwaltung bei HTTP-Anfragen
Unterstützung von zustandsbehafteten Web-Interaktionen
Sichere Cookie-Speicherung aktivieren
Hauptmerkmale
Automatische Cookie-Persistenz
Plattformübergreifende Kompatibilität
Integration mit HTTP-Clients
Policybasierte Cookie-Verwaltung
Sichere Speichermechanismen
Geeignet für
Web-API-Clients, die eine Sitzungsverwaltung benötigen
Anwendungen, die langfristige Cookie-Speicherung erfordern
Entwickler, die authentifizierte Web-Dienste erstellen
Plattformübergreifende mobile und Desktop-Anwendungen
Apps mit komplexen Cookie-Richtlinien
Hinweise
Erfordert manuelle Integration mit HTTP-Client-Instanzen
Möglicherweise sind zusätzliche Konfigurationen für benutzerdefinierte Speicher notwendig
Nicht geeignet für hochsichere Umgebungen ohne zusätzliche Schutzmaßnahmen
Beschränkt auf grundlegende Cookie-Operationen
Abhängig von der zugrunde liegenden HTTP-Client-Implementierung
Original-README
Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.
CookieJar
A cookie manager for http requests in Dart, help you to deal with the cookie policies and persistence.
Get started
Checkout the Migration Guide for breaking changes between versions.
Add dependency
You can use the command to add dio as a dependency with the latest stable version:
$ dart pub add cookie_jar
Or you can manually add cookie_jar into the dependencies section in your pubspec.yaml:
This class is a wrapper for Cookie class.
Because the Cookie class doesn't support Json serialization,
for the sake of persistence, we use this class instead of it.
CookieJar
CookieJar is a cookie container and manager for HTTP requests.
DefaultCookieJar
DefaultCookieJar is a default cookie manager which implements the standard cookie policy declared in RFC.
It saves the cookies in the memory, all cookies will be cleared after the app exited.
To use it:
final cookieJar = CookieJar();
PersistCookieJar
PersistCookieJar is a cookie manager which implements the standard cookie policy declared in RFC.
PersistCookieJar persists the cookies in files,
so if the application exit, the cookies always exist unless call delete explicitly.
To use it:
// Cookie files will be saved in files in "./cookies/4/"final cookieJar = PersistCookieJar(
ignoreExpires: true, // Save/load even cookies that have expired.
);
Note: When using the [FileStorage] in Flutter apps,
use path_provider to obtain available directories.
Directory tempDir = awaitgetTemporaryDirectory();
final tempPath = tempDir.path;
final cookieJar = PersistCookieJar(
ignoreExpires: true,
storage: FileStorage(tempPath),
);
Storage
You can customize your own storage by extending Storage, see FileStorage for more details.
dio is a powerful HTTP client for Dart/Flutter,
which supports global configuration, interceptors, FormData, request cancellation,
file uploading/downloading, timeout, and custom adapters etc.
dio also supports to manage cookies with cookie_jar
using dio_cookie_manager.
For example:
import'package:dio/dio.dart';
import'package:dio_cookie_manager/dio_cookie_manager.dart';
import'package:cookie_jar/cookie_jar.dart';
voidmain() async {
final dio = Dio();
final cookieJar = CookieJar();
dio.interceptors.add(CookieManager(cookieJar));
await dio.get('https://pub.dev/');
// Print cookiesprint(await cookieJar.loadForRequest(Uri.parse('https://pub.dev/')));
// Another request with the cookie.await dio.get("https://pub.dev/");
}