ai.newnal.illi.account.exchangeCode

illi-service.newnal.id

Schema Diff

+1 -1

From

CID
bafyreidrhwyxug4...
Indexed At
2026-10-21 08:12 UTC
View this version

To

CID
bafyreibwhx7utm5...
Indexed At
2026-10-23 07:24 UTC
View this version

Compatibility Analysis

Backward Compatible

No changes detected.

1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "description": "Exchange the one-time code from a client=native sign-in (delivered to the app at …/native/callback?code=…, 60 s, single use) for a session token, sent afterwards as Authorization: Bearer on every call and on /events (D-45). The code is bound to the code_challenge the app sent when it started the sign-in; codeVerifier proves it is the same app (D-76, PKCE-style S256), which stops a code obtained for another account from being injected into the app.",
5 +
      "description": "Exchange the one-time code from a client=native sign-in (delivered to the app at …/native/callback?code=…, 60 s, single use) for a session token, sent afterwards as Authorization: Bearer on every call and on /events. The code is bound to the code_challenge the app sent when it started the sign-in; codeVerifier proves it is the same app (PKCE-style S256), which stops a code obtained for another account from being injected into the app.",
6 6
      "errors": [
7 7
        {
8 8
          "name": "InvalidCode"
9 9
        },
10 10
        {
11 11
          "name": "RateLimitExceeded"
12 12
        }
13 13
      ],
14 14
      "input": {
15 15
        "encoding": "application/json",
16 16
        "schema": {
17 17
          "properties": {
18 18
            "code": {
19 19
              "maxLength": 128,
20 20
              "type": "string"
21 21
            },
22 22
            "codeVerifier": {
23 23
              "description": "The random secret (RFC 7636 code verifier: 43-128 characters of A-Z a-z 0-9 - . _ ~) whose base64url(SHA-256) the app sent as code_challenge to /oauth/login or account.parent.startOAuth.",
24 24
              "maxLength": 128,
25 25
              "minLength": 43,
26 26
              "type": "string"
27 27
            }
28 28
          },
29 29
          "required": [
30 30
            "code",
31 31
            "codeVerifier"
32 32
          ],
33 33
          "type": "object"
34 34
        }
35 35
      },
36 36
      "output": {
37 37
        "encoding": "application/json",
38 38
        "schema": {
39 39
          "properties": {
40 40
            "app": {
41 41
              "knownValues": [
42 42
                "family",
43 43
                "device"
44 44
              ],
45 45
              "type": "string"
46 46
            },
47 47
            "did": {
48 48
              "format": "did",
49 49
              "type": "string"
50 50
            },
51 51
            "expiresAt": {
52 52
              "format": "datetime",
53 53
              "type": "string"
54 54
            },
55 55
            "token": {
56 56
              "type": "string"
57 57
            }
58 58
          },
59 59
          "required": [
60 60
            "token",
61 61
            "did",
62 62
            "app",
63 63
            "expiresAt"
64 64
          ],
65 65
          "type": "object"
66 66
        }
67 67
      },
68 68
      "type": "procedure"
69 69
    }
70 70
  },
71 71
  "id": "ai.newnal.illi.account.exchangeCode",
72 72
  "lexicon": 1
73 73
}

Compare Other Versions

Lexicon Garden

@