{
  "$type": "site.standard.document",
  "content": {
    "$type": "at.markpub.markdown",
    "flavor": "gfm",
    "renderingRules": "marked",
    "text": {
      "$type": "at.markpub.text",
      "markdown": "# oauth\n\nmore detailed notes on AT Protocol OAuth beyond the broad overview in [`../auth.md`](../auth.md).\n\n## contents\n\n- [scopes](./scopes.md) - choosing scopes, permission sets, progressive scope upgrades, and when `transition:generic` is the wrong tool\n- [dpop](./dpop.md) - server-side DPoP: stateless nonces, the use_dpop_nonce dance, proof verification field by field\n"
    }
  },
  "path": "/protocols/atproto/oauth",
  "publishedAt": "2026-07-08T20:16:04.408Z",
  "site": "at://did:plc:xbtmt2zjwlrfegqvch7fboei/site.standard.publication/notes",
  "textContent": "oauth\n\nmore detailed notes on AT Protocol OAuth beyond the broad overview in ../auth.md.\n\ncontents\nscopes - choosing scopes, permission sets, progressive scope upgrades, and when transition:generic is the wrong tool\ndpop - server-side DPoP: stateless nonces, the use_dpop_nonce dance, proof verification field by field",
  "title": "oauth",
  "updatedAt": "2026-07-21T19:27:28.082Z"
}