refreshSessionIfNeeded method

  1. @override
Future<void> refreshSessionIfNeeded()
override

Called by the session manager to conditionally refresh the active session.

Implementation

@override
Future<void> refreshSessionIfNeeded() async {
  final session = _session;
  if (session != null && shouldRefresh(session)) {
    _logger?.log(level: DescopeLogger.info, message: 'Refreshing session that is about to expire', values: [session.sessionToken.expiresAt]);
    final response = await _auth.refreshSession(session.refreshJwt);
    if (_session != session) {
      _logger?.log(level: DescopeLogger.info, message: 'Skipping refresh because session has changed in the meantime');
      return;
    }
    session.updateTokens(response);
  }
}