games.cavu.bindSession
Served by the game host named in a grant's hostService. The game server presents the grant and its attestation with a DPoP proof (DPoP header, ES256). The host verifies the attestation against the launch service's key, checks the grant is unexpired and names this host, checks `jkt` matches the proof key, consumes the nonce (which it minted for `player`), and binds a session to that key. Later calls (getCapabilities, com.atproto.repo.putRecord, ...) carry `Authorization: DPoP <session>` plus a fresh proof.
Details · procedure
| Kind | procedure |
|---|---|
| Authority | cavu.games |
| Indexed |
Procedure
procedure · POSTInput
application/jsonOutput
application/jsonSession lifetime, independent of (and longer than) the grant's.
handle
string · handlepresence
booleanThe player chose (at this host) to show what they're playing: the session may keep their games.atmosphere.status record (rkey 'self') naming this game's games.atmosphere.define record, and its capabilities include that write. Checked against the player's current choice on every write.
Opaque session token; only usable with the bound DPoP key.
maxLength: 256
Errors
AuthRequired
Missing or invalid DPoP proof.
InvalidGrant
Bad attestation, wrong host, or unknown launch service key.
GrantExpired
No description in schema.
NonceUsed
No description in schema.
KeyMismatch
The DPoP key's thumbprint is not the grant's jkt.
PlayerSignedOut
The host no longer holds a session for the grant's player.
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
What this bound session may do, as resolved by the host (standard sets expanded to the concrete collections/rkeys for this game). Requires the session token and a DPoP proof.