Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.8.0

fresh_graphql

Um link do graphql para atualização de token. Construído sobre o pacote:graphql e gerencia tokens de autenticação de forma transparente.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
3,4 mil
Curtidas
38
Pontos Pub
160

Instalar pacote

flutter pub add fresh_graphql

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Fresh GraphQL é um pacote Flutter/Dart que amplia a funcionalidade do pacote graphql fornecendo um mecanismo automático de atualização de token para requisições GraphQL. Ele lida de forma transparente com tokens de autenticação, garantindo que sejam renovados antes que as requisições expiram. Construído sobre o pacote graphql principal, simplifica a comunicação segura com APIs em aplicativos que exigem autenticação persistente. Ideal para aplicações que usam JWT ou sistemas semelhantes de autenticação baseada em tokens.

Casos de uso

  • Acesso seguro à API GraphQL com atualização automática
  • Tratamento de tokens expirados sem intervenção do usuário
  • Integração com autenticação baseada em JWT
  • Gerenciando sessões autenticadas entre reinícios do aplicativo
  • Simplificando a gestão de estado para tokens de autenticação

Principais recursos

  • Atualização automática de token
  • Integração transparente com o pacote graphql
  • Suporte para lógica personalizada de atualização de token
  • Mecanismo embutido de repetição para solicitações falhas
  • Compatibilidade multiplataforma

Indicado para

  • Aplicativos usando JWT ou OAuth2
  • Desenvolvedores procurando tratamento contínuo de autenticação
  • Projetos com chamadas frequentes ao GraphQL
  • Equipes priorizando a experiência do desenvolvedor
  • Aplicações que exigem gerenciamento robusto de sessão

Considerações

  • Requer configuração adequada do ponto final de atualização do token
  • Depende da disponibilidade do serviço de autenticação externo
  • Pode ser necessário personalizar fluxos de autenticação não padrão
  • Não adequado para APIs sem estado sem tokens
  • Limitado ao uso com o pacote graphql apenas

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Fresh 🍋

build License: MIT GitHub stars


A collection of packages for automatic token refresh in Dart and Flutter. Fresh handles refreshing, caching, and attaching authentication tokens transparently so your API calls just work.

Why Fresh?

Token-based authentication seems simple until you handle the edge cases: tokens expire mid-session, multiple requests fail at the same time triggering duplicate refreshes, refresh tokens get revoked, and you need to route users to login when auth is lost. Fresh handles all of this so you don't have to.

  • No more manual 401 handling scattered across your codebase
  • No more race conditions when concurrent requests trigger simultaneous refreshes
  • No more stale tokens causing request failures - expired tokens are refreshed proactively before the request is even sent

Packages

Package Pub
fresh pub package
fresh_dio pub package
fresh_graphql pub package
fresh_http pub package

Features

  • Automatic token refresh on 401 / auth errors, with automatic request retry
  • Proactive refresh before requests when the token is expired
  • Single-flight refresh - concurrent requests share one refresh call instead of triggering multiple
  • authenticationStatus stream for reacting to login/logout events
  • Pluggable TokenStorage - bring your own persistence layer
  • Built-in OAuth2Token with expiresAt support

Usage

fresh_dio
final dio = Dio();

dio.interceptors.add(
  Fresh.oAuth2(
    tokenStorage: InMemoryTokenStorage<OAuth2Token>(),
    refreshToken: (token, client) async {
      final response = await client.post(
        'https://api.example.com/auth/refresh',
        data: {'refresh_token': token?.refreshToken},
      );
      return OAuth2Token(
        accessToken: response.data['access_token'],
        refreshToken: response.data['refresh_token'],
      );
    },
  ),
);

See the fresh_dio README for full documentation.

fresh_graphql
import 'dart:convert';

final freshLink = FreshLink.oAuth2(
  tokenStorage: InMemoryTokenStorage<OAuth2Token>(),
  refreshToken: (token, client) async {
    final response = await client.post(
      Uri.parse('https://api.example.com/auth/refresh'),
      body: jsonEncode({'refresh_token': token?.refreshToken}),
    );
    final body = jsonDecode(response.body) as Map<String, dynamic>;
    return OAuth2Token(
      accessToken: body['access_token'],
      refreshToken: body['refresh_token'],
    );
  },
  shouldRefresh: (response) =>
      response.errors?.any((e) => e.message.contains('UNAUTHENTICATED')) ?? false,
);

// HttpLink comes from package:gql_http_link
final link = Link.from([freshLink, HttpLink('https://api.example.com/graphql')]);

See the fresh_graphql README for full documentation.

fresh_http
import 'dart:convert';

final client = Fresh.oAuth2(
  tokenStorage: InMemoryTokenStorage<OAuth2Token>(),
  refreshToken: (token, client) async {
    final response = await client.post(
      Uri.parse('https://api.example.com/auth/refresh'),
      body: jsonEncode({'refresh_token': token?.refreshToken}),
    );
    final body = jsonDecode(response.body) as Map<String, dynamic>;
    return OAuth2Token(
      accessToken: body['access_token'],
      refreshToken: body['refresh_token'],
    );
  },
);

See the fresh_http README for full documentation.

Categorias

Dependências

Lista de dependências 4 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.