After login

A valid cookie on
a different device

Infostealers copy session cookies. The attacker skips login and goes straight to your billing settings, exports or API keys.

Decision trace

Example · sensitive actionRevoke
  1. Bound sessionChrome on macOS, with a known visitor and fingerprint.
  2. Current requestThe same valid session from a different visitor and fingerprint.
  3. Reasonsession_device_change
  4. DecisionRevoke the session in your backend. Queue a session.suspicious webhook.

How it works

  1. Bind after authentication

    Associate your opaque session id with the browser token, network and User-Agent.

  2. Check before sensitive actions

    Send a fresh browser token before billing, key creation, password changes or exports.

  3. Apply the decision

    Allow, require independent step-up, or invalidate the session. Review suspicious checks in the dashboard.

API

POST /v1/session
{"secret":"sk_…","event":"check","sessionId":"sess_42","accountId":"user_42","token":"BROWSER_TOKEN"}

{"decision":"revoke","reasons":["session_device_change"],"boundAt":1792800000000}

Keep secrets on your backend. Raw session identifiers and IPs are never stored. Suspicious webhooks include only a session hash prefix.

Limits