Skip to content

Implement SEP-837: Update authorization spec to clarify client type requirements #2198

Closed

Description

@felixweinberger

This is a tracking issue for implementation of SEP-837.

Activity

  1. mattzcarey commented on May 29, 2026

    @mattzcarey
    Member

    Status — SEP-837 (Client type requirements — DCR application_type)

    Track: C — independent, starts now.
    Spec: seps/837-client-type-requirements.md (numbered SEP-837)

    What's done

    • Nothing in main — no application_type in DCR request body. git grep -n "application_type" returns no hits in packages/.
    • No open or closed PRs in the SDK reference SEP-837.

    Outstanding (acceptance criteria)

    • R-837-1 (wire): Client MUST specify application_type during Dynamic Client Registration
    • R-837-2 (sdk): Native applications SHOULD use application_type: "native" (localhost / custom-scheme redirect)
    • R-837-3 (sdk): Web applications SHOULD use application_type: "web" (https non-local redirect)
    • R-837-4 (wire): Client MUST be prepared to handle DCR rejection due to redirect-URI constraints (typed error, not crash/loop)
    • R-837-5 (sdk): On registration rejection, client SHOULD surface a meaningful error including the AS error code/description

    Suggested first PR (small)

    1. In packages/client/src/client/auth.ts, the DCR request body construction:
      • infer application_type from the configured redirect_uri (custom scheme or loopback → "native"; https non-local → "web"); allow explicit override on OAuthClientProvider
    2. Map invalid_redirect_uri / invalid_client_metadata responses to a typed DcrRejectedError carrying the AS error fields
    3. Tests: native redirect → native; https → web; rejected → typed error surfaces description

    Coordination

  2. self-assigned this
    on May 29, 2026
  3. added 3 commits that reference this issue on Jun 25, 2026
    b0ba089
    643083a
    ad24ad5
  4. added a commit that references this issue on Jul 1, 2026
    28362ea
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions