senior_platform_authentication 9.0.0 copy "senior_platform_authentication: ^9.0.0" to clipboard
senior_platform_authentication: ^9.0.0 copied to clipboard

A package that make it easy to implement the Senior X authentication for Dart.

example/main.dart

import 'package:senior_platform_authentication/senior_platform_authentication.dart';

void main() async {
  final getConnectionStatus = GetConnectivityStatusUsecase();
  final connStatus = await getConnectionStatus(NoParams());

  print('ESTÁ CONECTADO: $connStatus.');

  final credentials = UserLogin(
    username: '{YOUR_USERNAME}',
    password: '{YOUR_PASSWORD}',
    scope: 'mobile',
  );

  final tenantLogin = TenantLogin(
    userName: '{YOUR_USERNAME}',
    tenantDomain: '{YOUR_TENANT}',
  );

  SeniorAuthentication.initialize(
    platformEnvironment: PlatformEnvironment.production,
    encryptionKey: SeniorAuthentication.encryptionKey,
  );

  final getRecaptchaUrlUsecase = GetRecaptchaUrlUsecase();
  final loginUsecase = LoginUsecase();
  final getUserUsecase = GetUserUsecase();
  final logoutOnlineUsecase = LogoutUsecase();
  final getTenantLoginSettingsUsecase = GetTenantLoginSettingsUsecase();
  final refreshTokenUsecase = RefreshTokenUsecase();

  try {
    final url = await getRecaptchaUrlUsecase(NoParams());
    print('RECAPTCHA URL >>>> $url');

    final authenticationResponse = await loginUsecase(credentials);
    print('AUTHENTICATION RESPONSE >>> ${authenticationResponse.toString()}');

    final getUserInput = GetUserInput(
      accessToken: authenticationResponse.token?.accessToken ?? '',
      username: authenticationResponse.token?.username ?? '',
      includePhoto: false,
    );

    final user = await getUserUsecase(getUserInput);
    print('USER >>> ${user.toString()}');

    final refreshToken = RefreshToken(
        token: authenticationResponse.token?.refreshToken ?? '',
        scope: authenticationResponse.token?.accessToken ?? '',
        tenant: user.tenantName);

    final refreshAuthenticationResponse =
        await refreshTokenUsecase(refreshToken);

    print('REFRESH AUTHENTICATION RESPONSE >>> $refreshAuthenticationResponse');

    // Call method is optional when calling usecase to be executed.
    final logout = await logoutOnlineUsecase
        .call(refreshAuthenticationResponse.token?.accessToken ?? '');
    print('LOGOUT >>> $logout');

    final tenantLoginSettings =
        await getTenantLoginSettingsUsecase.call(tenantLogin);
    print('TENANT LOGIN SETTINGS >>> $tenantLoginSettings');
  } on ServerException catch (e) {
    print('SERVER EXCEPTION >>> ${e.toString()}');
  } on UnauthorizedException catch (e) {
    print('UNAUTHORIZED EXCEPTION >>> ${e.toString()}');
  } on BadRequestException catch (e) {
    print('BAD REQUEST EXCEPTION EXCEPTION >>> ${e.toString()}');
  } on TenantNotFoundException catch (e) {
    print('TENANT NOT FOUND EXCEPTION >>> ${e.toString()}');
  } on UnknownException catch (e) {
    print('UNKNOWN EXCEPTION >>> ${e.toString()}');
  }
}
3
likes
140
points
976
downloads

Publisher

verified publishersenior.com.br

Weekly Downloads

A package that make it easy to implement the Senior X authentication for Dart.

Homepage

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

cryptography, equatable, http, intl

More

Packages that depend on senior_platform_authentication