Skip to content

Flowsta AuthDecentralized Authentication for Web & Desktop

OAuth SSO for web apps. Identity linking for desktop apps. Holochain-powered zero-knowledge privacy.

Flowsta Auth Network Architecture

Three Integration Paths

Choose the approach that fits your application:

Web Apps - OAuth SSO

Add "Sign in with Flowsta" with the @flowsta/auth SDK:

typescript
import { FlowstaAuth } from '@flowsta/auth';

const auth = new FlowstaAuth({
  clientId: 'your_client_id',
  redirectUri: 'https://yourapp.com/auth/callback'
});

auth.login(); // Redirects to login.flowsta.com

const user = await auth.handleCallback();
console.log('Welcome,', user.displayName);

Desktop Holochain Apps - Agent Linking

Link your app's agent key with the user's Flowsta Vault identity:

typescript
import { linkFlowstaIdentity } from '@flowsta/holochain';

const result = await linkFlowstaIdentity({
  appName: 'YourApp',
  clientId: 'your_client_id',
  localAgentPubKey: myAgentKey,
});

// Commit attestation to your DHT
await appWebsocket.callZome({
  role_name: 'my-role',
  zome_name: 'agent_linking',
  fn_name: 'create_direct_link',
  payload: {
    other_agent: decodeHashFromBase64(result.payload.vaultAgentPubKey),
    other_signature: base64ToSignature(result.payload.vaultSignature),
  },
});

Desktop Tauri Apps - Vault Identity

Manage Flowsta Vault identity in Tauri desktop apps:

typescript
import { FlowstaVaultAuth } from '@flowsta/auth-tauri';

const vault = new FlowstaVaultAuth();

const status = await vault.getStatus();
if (status.unlocked) {
  const identity = await vault.getIdentity();
  console.log('DID:', identity.did);
  console.log('Agent key:', identity.agentPubKey);
}

Why Flowsta Auth?

Traditional authentication services store user data in centralized databases - single points of failure vulnerable to breaches, censorship, and vendor lock-in.

Flowsta Auth is different:

  • Zero-Knowledge Privacy - Flowsta staff physically cannot access user private data
  • W3C DIDs - Every user gets a standards-compliant Decentralized Identifier
  • User-Owned Data - Users control their own encryption keys, not us
  • No Client Secrets - PKCE provides security for browser and mobile apps
  • Always Available - Distributed Holochain network means no single point of failure

Documentation licensed under CC BY-SA 4.0.