Orientação gerada a partir de informações públicas. Apenas para referência.
Um pacote Dart que gerencia cookies para solicitações HTTP, permitindo o manuseio contínuo de políticas de cookie e armazenamento persistente entre sessões. Ele se integra a clientes HTTP para armazenar, recuperar e enviar automaticamente cookies com base em regras de domínio e caminho. Ideal para aplicações que exigem interações com serviços da web com estado, como sessões de login ou preferências do usuário. O pacote suporta múltiplas plataformas, incluindo Android, iOS, macOS, Windows e Linux, garantindo consistência entre plataformas no gerenciamento de cookies.
Casos de uso
Gerenciando cookies de sessão em APIs da web
Persistência de estados de login do usuário
Automatizando o tratamento de cookies em requisições HTTP
Apoiar interações web com estado
Habilitar armazenamento seguro de cookies
Principais recursos
Persistência automática de cookie
Compatibilidade multiplataforma
Integração com clientes HTTP
Gerenciamento de cookies baseado em políticas
Mecanismos de armazenamento seguro
Indicado para
Clientes da API da Web que precisam de gerenciamento de sessão
Aplicações que exigem armazenamento de cookie de longo prazo
Desenvolvedores construindo serviços web autenticados
Aplicativos móveis e de desktop multiplataforma
Aplicativos com políticas de cookie complexas
Considerações
Requer integração manual com instâncias de cliente HTTP
Pode ser necessário configurar adicionais para armazenamento personalizado
Não adequado para ambientes de alta segurança sem salvaguardas adicionais
Limitado a operações básicas de cookie
Depende da implementação subjacente do cliente HTTP
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
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/");
}