Welcome to FlowZap, the App to diagram with Speed, Clarity and Control.

Oauth Flow Workflow

business-operations

OAuth 2.0 authorization code flow with redirect handling, code exchange, token storage, refresh token rotation, and scope management.

Full FlowZap Code

User { # User
  n1: circle label:"Start"
  n2: rectangle label:"Click Login with Provider"
  n3: rectangle label:"Grant permissions"
  n4: rectangle label:"Receive access token"
  n5: circle label:"End"
  n1.handle(right) -> n2.handle(left)
  n2.handle(bottom) -> ClientApp.n6.handle(top) [label="Initiate"]
  n3.handle(bottom) -> AuthServer.n12.handle(top) [label="Approve"]
  n4.handle(right) -> n5.handle(left)
}
ClientApp { # Client App
  n6: rectangle label:"Generate state parameter"
  n7: rectangle label:"Build authorization URL"
  n8: rectangle label:"Redirect to auth server"
  n9: rectangle label:"Receive authorization code"
  n10: rectangle label:"Exchange code for tokens"
  n11: rectangle label:"Store tokens securely"
  n6.handle(right) -> n7.handle(left)
  n7.handle(right) -> n8.handle(left)
  n8.handle(bottom) -> AuthServer.n13.handle(top) [label="Redirect"]
  n9.handle(right) -> n10.handle(left)
  n10.handle(bottom) -> AuthServer.n17.handle(top) [label="Token request"]
  n11.handle(top) -> User.n4.handle(bottom) [label="Authenticated"]
}
AuthServer { # Auth Server
  n12: rectangle label:"Validate client credentials"
  n13: rectangle label:"Display consent screen"
  n14: diamond label:"User consents?"
  n15: rectangle label:"Generate authorization code"
  n16: rectangle label:"Return error response"
  n17: diamond label:"Valid code and secret?"
  n18: rectangle label:"Issue access and refresh tokens"
  n12.handle(right) -> n13.handle(left)
  n13.handle(top) -> User.n3.handle(bottom) [label="Show consent"]
  n14.handle(right) -> n15.handle(left) [label="Yes"]
  n14.handle(bottom) -> n16.handle(top) [label="No"]
  n15.handle(top) -> ClientApp.n9.handle(bottom) [label="Callback"]
  n16.handle(top) -> ClientApp.n6.handle(bottom) [label="Access denied"]
  n17.handle(right) -> n18.handle(left) [label="Yes"]
  n17.handle(bottom) -> n16.handle(left) [label="No"]
  n18.handle(top) -> ClientApp.n11.handle(bottom) [label="Tokens"]
}

Related templates

Ab Test Setup Workflow

business-operations

A/B test setup workflow with hypothesis definition, variant creation, traffic allocation, statistical analysis, and winner deployment.

Account Deletion Workflow

business-operations

Account deletion workflow with cancellation reason capture, retention offer, subscription termination, data cleanup, and confirmation email.

Api Key Rotation Workflow

business-operations

API key rotation workflow with new key generation, dual-key transition period, client notification, old key deprecation, and audit logging.

Billing Dispute Workflow

business-operations

Billing dispute workflow with dispute intake, transaction review, fraud analysis, resolution decision, and chargeback response handling.

Cohort Analysis Workflow

business-operations

Cohort analysis workflow with user segmentation by signup date, retention curve calculation, LTV projection, and behavioral pattern identification.