logout method
Disconnects, forgets the persisted token for the active Hub, and returns to signed-out. The Hub URL and principal are kept to prefill the next login.
Implementation
Future<void> logout() async {
final uri = _service.hubUri?.toString();
await _service.disconnect();
if (uri != null) _settings.clearToken(uri);
_settings.rememberToken = false;
state.value = const AuthSnapshot.signedOut();
}