mobile_authentication 3.1.0 copy "mobile_authentication: ^3.1.0" to clipboard
mobile_authentication: ^3.1.0 copied to clipboard

Library to pradronize the login method do Senior Sistemas clocking event system

dart-mobile-authentication #

Biblioteca que padroniza a comunicação com os serviços de autenticação móvel do ecossistema Senior, permitindo identificar colaboradores, verificar permissões e sincronizar dados de dispositivos para aplicações de ponto eletrônico.

Recursos principais #

  • Integrações prontas com os endpoints oficiais de autenticação e autorização.
  • DTOs e enums tipados para todas as operações suportadas pela API.
  • Atualização de informações do dispositivo com tratamento de erros especializado.
  • Estrutura preparada para clientes HTTP customizados (injeção de dependências).

Pré-requisitos #

  • Dart SDK >=3.0.0 <4.0.0.
  • Flutter (opcional) configurado com fvm, caso utilize os comandos sugeridos de testes.
  • Token válido emitido pela plataforma Senior para consumo das APIs protegidas.

Instalação #

Adicione o pacote ao pubspec.yaml do seu projeto:

dependencies:
  mobile_authentication:
    git:
      url: https://git.senior.com.br/gestao-ponto/dart-mobile-authentication.git

Em seguida execute:

dart pub get

Uso básico #

import 'package:http/http.dart' as http_client;
import 'package:mobile_authentication/mobile_authentication_service.dart';

void main() async {
  const token = 'Bearer {SEU_TOKEN}';

  final httpClient = CustomHttpClient(http_client.Client(), token);
  final authService = MobileAuthenticationService(httpClient: httpClient);

  final device = DeviceInfo(
    name: '{NOME}',
    identifier: '{IDENTIFICADOR}',
    model: '{MODELO}',
  );

  final login = await authService.getMobileLogin(
    device,
    Environment.dev,
    token,
  );

  final permissions = AuthorizationPermissions(permissions: [
    AuthorizationParameter(
      resource: 'res://senior.com.br/hcm/pontomobile/administrator',
      action: 'Permitir',
    ),
  ]);

  final authorization = await authService.getAuthorization(
    permissions,
    Environment.dev,
  );

  print(login.toJson());
  print(authorization.toJson());
}

class CustomHttpClient extends http_client.BaseClient {
  CustomHttpClient(this._inner, this._token);

  final http_client.Client _inner;
  final String _token;

  @override
  Future<http_client.StreamedResponse> send(http_client.BaseRequest request) {
    request.headers['Authorization'] = _token;
    return _inner.send(request);
  }
}

Consulte a pasta example/ para um fluxo completo, incluindo configurações de HttpOverrides em ambientes de homologação.

Configurações de ambiente #

Utilize o enum Environment para direcionar as chamadas para o ambiente desejado (dev, hml, prod). Certifique-se de utilizar o token correspondente ao ambiente selecionado.

Erros e exceções #

As principais exceções lançadas ficam em src/exception/ (por exemplo InvalidTokenException, ServiceException, UnauthorizedException). Faça o tratamento adequado no seu código para garantir uma boa experiência ao usuário.

Comandos úteis #

  • Executar testes unitários e gerar coverage/lcov.info:
    fvm flutter test --coverage
    
  • Gerar os arquivos .g.dart criados pelo json_serializable:
    dart run build_runner build --delete-conflicting-outputs
    

Contribuindo #

Antes de abrir um merge request:

  • Leia o guia CONTRIBUTING.md para seguir os padrões de desenvolvimento.
  • Respeite as regras de lint presentes em analysis_options.yaml.
  • Garanta que testes e geração de código estejam atualizados.

Suporte #

Em caso de dúvidas, entre em contato com a equipe mantenedora listada no CONTRIBUTING.md ou abra uma issue no repositório interno.

3
likes
140
points
97
downloads

Publisher

verified publishersenior.com.br

Weekly Downloads

Library to pradronize the login method do Senior Sistemas clocking event system

Repository

Documentation

API reference

License

ISC (license)

Dependencies

equatable, http, json_annotation

More

Packages that depend on mobile_authentication