Opaque session token

Definition

An identifier that carries no meaning to whoever holds it — it references server-side state rather than describing it, so a client cannot read it, modify it, or guess a neighbouring value.

The contrast is with a transparent identifier. If a viewer addresses documents by /view?file=/records/2026/patient-4417.pdf, the client learns your directory layout, your naming convention and that patient 4416 probably exists. Incrementing an integer is the oldest document-leak bug there is, and it is still being written today.

An opaque token removes the entire category. The server holds the mapping from token to document; the client holds a string it cannot interpret. Enumeration stops being possible because there is nothing to enumerate.

Opaque does not mean harmless. A token still authorizes access to whatever it references, so it should be treated as a short-lived credential: not logged, not put in URLs that end up in analytics, not persisted client-side beyond the life of the view.

In Doconut

Viewer.OpenDocumentAsync() returns an opaque token that the JavaScript widget presents to fetch pages. It is not a document identifier and should never be logged, cached client-side beyond the viewer, or reused across sessions.

See how it works in practice

Definitions only carry you so far. A temporary licence runs on your own machine, against your own documents.