{
"$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"
}