mobile_authentication 3.1.0
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 deHttpOverridesem 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.dartcriados pelojson_serializable:dart run build_runner build --delete-conflicting-outputs
Contribuindo #
Antes de abrir um merge request:
- Leia o guia
CONTRIBUTING.mdpara 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.