logout method

Future<void> logout()

Implementation

Future<void> logout() async {
  logger.log('Logging out...');

  await events.publish(await DeviceSelfRevokeEventBodyModel.create());

  if (TailscaleAdmin.instance.isAdmin) {
    await TailscaleAdmin.instance.deleteDevice(signing.publicKey);
  }

  await disconnect();

  CanvasAnchorKeyCache.instance.clear();

  await Future.wait([
    _engine.logout(),
    Database.instance.clear(),
    Secret.clearAll(),
    _media.clear(),
  ]);

  logger.log('Logged out.');

  await Future.wait([encryption.init(), signing.init()]);
  await Database.instance.init();
  await _media.init();
  await init(reconnectIfStopped: false);

  logger.log('Session reinitialized.');
}