getAuthTokenResult method

  1. @override
Future<AuthTokenResult> getAuthTokenResult({
  1. bool forceRefresh = false,
})
override

Implementation

@override
Future<AuthTokenResult> getAuthTokenResult(
    {bool forceRefresh = false}) async {
  LoggerService logger = LittleFishCore.instance.get<LoggerService>();

  IdTokenResult r = await kUser.getIdTokenResult(forceRefresh);

  DateTime expirationTime = r.expirationTime ?? DateTime.now();

  int remainingTokenTime =
      expirationTime.difference(DateTime.now().toUtc()).inMinutes;

  logger.debug(
    'littlefish-http-client',
    'Remaining Token Time: $remainingTokenTime',
  );

  if (remainingTokenTime <= 10) {
    logger.info(
      'littlefish-http-client',
      'Token refresh started for $kUser, with remaining time: $remainingTokenTime',
    );

    r = await kUser.getIdTokenResult(true);

    logger.info(
      'littlefish-http-client',
      'Token refresh completed for $kUser',
    );
  }

  return AuthTokenResult(
    token: r.token ?? '',
    expirationTime: r.expirationTime ?? DateTime.now(),
    authTime: r.authTime ?? DateTime.now(),
    issuedAtTime: r.issuedAtTime ?? DateTime.now(),
    signInProvider: r.signInProvider ?? '',
    claims: r.claims ?? {},
  );
}