Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev4.0.9

cookie_jar

Um gerenciador de cookies para solicitações HTTP em Dart, ajuda você a lidar com políticas de cookie e persistência.

AndroidiOSmacOSWindowsLinux
Downloads em 30 dias
247 mil
Curtidas
105
Pontos Pub
160

Instalar pacote

flutter pub add cookie_jar

Visão geral do pacote

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

Pub GitHub license

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:

dependencies:
  cookie_jar: ^replace-with-latest-version

The latest version is: Pub The latest version including pre-releases is: Pub

Usage

A simple usage example:

import 'package:cookie_jar/cookie_jar.dart';

void main() async {
  final cookieJar = CookieJar();
  List<Cookie> cookies = [Cookie('name', 'wendux'), Cookie('location', 'china')];
  // Saving cookies.
  await cookieJar.saveFromResponse(Uri.parse('https://pub.dev/'), cookies);
  // Obtain cookies.
  List<Cookie> results = await cookieJar.loadForRequest(Uri.parse('https://pub.dev/paths'));
  print(results);
}

Classes

SerializableCookie

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 = await

getTemporaryDirectory();

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.

APIs

Future saveFromResponse(Uri uri, List cookies);

Save the cookies for specified uri.

Future<List> loadForRequest(Uri uri);

Load the cookies for specified uri.

Future delete(Uri uri, [bool withDomainSharedCookie = false])

Delete cookies for specified uri. This API will delete all cookies for the uri.host, it will ignore the uri.path.

If withDomainSharedCookie is true , all domain-shared cookies will be deleted.

Future deleteAll();

Delete all cookies.

Working with HttpClient

Using CookieJar or PersistCookieJar manages HttpClient 's request/response cookies is quite easy:

final cookieJar = CookieJar();
request = await httpClient.openUrl(options.method, uri);
request.cookies.addAll(await cj.loadForRequest(uri));
response = await request.close();
await cookieJar.saveFromResponse(uri, response.cookies);

Working with dio

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';

void main() async {
  final dio = Dio();
  final cookieJar = CookieJar();
  dio.interceptors.add(CookieManager(cookieJar));
  await dio.get('https://pub.dev/');
  // Print cookies
  print(await cookieJar.loadForRequest(Uri.parse('https://pub.dev/')));
  // Another request with the cookie.
  await dio.get("https://pub.dev/");
}

More details about dio.

Copyright & License

The project and it's underlying projects are originally authored by @wendux with the organization @flutterchina since 2018.

The project consents the MIT license.

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote