refreshSession method
Deprecated
Refreshes the session for the given userId by fetching a new session from the server.
Implementation
Future<AuthUserSession> refreshSession(String userId) async {
try {
return await monitoringService.monitorAction<AuthUserSession>(
actionName: '${_providerName}_refresh_session',
provider: _providerName,
attributes: {'userId': userId},
action: (trace) async {
_ensureInitialized();
var request = UpdateSessionRequest(userId);
logger.debug(this, 'session request created successfully');
var newSessionDto = await sessionService.refreshSession(request);
var newSesion = AuthUserSession.mapFromDto(dto: newSessionDto);
logger.debug(this, 'user session created - pending validation');
await validateSession(newSesion);
logger.info(this, 'user session validation passed, session is ready');
await _localSessionRepository.saveSession(newSesion);
if (_localSessionRepository.activeSession?.userId == userId) {
await _localSessionRepository.setActiveSession(newSesion);
logger.info(this, 'active session updated successfully');
}
return newSesion;
},
);
} catch (e) {
logger.error(
this,
'Refresh failed, attempting to create new session.',
error: e,
stackTrace: StackTrace.current,
);
rethrow;
}
}