validateSession method

Future<void> validateSession()

Implementation

Future<void> validateSession() async {
  try {
    if (await provider.validateSession()) {
      final user = state.user;
      if (!user.isValid ||
          (user.username != await provider.getLoggedInUsername()) ||
          state.session.isTimedout(user)) {
        // if user is not valid or session
        // as timedout sign out the user
        provider.signOut();
      } else {
        // session and user in context is valid
        return;
      }
    }

    // reset the state
    emit(const IdentityState());
  } catch (error, stackTrace) {
    _logger.severe('Error validating session: ', error, stackTrace);

    emit(state.addMessage(
      Message.error(_localizations.sessionValidationFailed),
      error,
      stackTrace,
    ));
  }
}