Skip to main content
Credentials let you store login information securely. Kernel can automatically authenticate credential-only flows and attempts to provide TOTP codes when needed. There are three ways to provide credentials:
  • Automatically save during login — Capture credentials directly from the user when they log in via Hosted UI or Programmatic
  • Pre-store in Kernel — Create credentials before login for supported headless authentication flows
  • Connect 1Password — Use credentials from your existing 1Password vaults

1Password Integration

Connect your 1Password vaults to automatically use existing credentials with Managed Auth. Credentials are automatically matched by domain.

Save credentials during login

By default, Kernel saves durable credential fields entered during login so they can be used for eligible reauthentication attempts. No extra parameters are needed:
Once saved, the browser profile reuses its authenticated session until the site expires it. For supported credential-based flows, Kernel can then reauthenticate with the stored values. Credentials are updated after every successful login. Submitted one-time codes aren’t saved; Kernel generates TOTP codes from a stored totp_secret. To opt out of credential saving, set save_credentials: false when creating the connection:

Pre-store credentials

For credential-based flows that you want to run without user input, create credentials upfront:
Then link the credential when creating a connection:

2FA with TOTP

For sites with authenticator app 2FA, include totp_secret so Kernel can generate a fresh code during automatic login and reauthentication:

SSO / OAuth

For sites with “Sign in with Google/GitHub/Microsoft”, set sso_provider so Kernel can select the matching SSO route. Automatic completion depends on the provider’s login requirements. Common SSO provider domains (Google, Microsoft, Okta, Auth0, GitHub, etc.) are allowed by default, so you don’t need to add them to allowed_domains:

Partial Credentials

Credentials don’t need to contain every field required by the login form. You can store what you have and collect the necessary fields from the user. auth.connections.login() pauses for missing values. As an example, the below credential has email + TOTP secret stored (and automatically handled), but no password. The password is dynamically collected from the user using Kernel’s Hosted UI or your Programmatic flow:
This is useful when you want to:
  • Store TOTP secrets but have users enter their password each time
  • Pre-fill username/email but collect password at runtime
  • Merge user-provided values into an existing credential automatically on successful login

Security

Notes

  • The values object is flexible and can be used to store whatever fields the login form needs (email, username, company_id, etc.)
  • Deleting a credential unlinks it from associated connections so they can no longer auto-authenticate
  • Use one credential per account. We recommend creating separate credentials for different user accounts