matrix-org / matrix-org/matrix-spec

Clarify access token grammar

Open
#625 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-Client-Server clarification Z-Fixed-By-OIDC
Dominant language
HTML
Stars
330
Forks
150
Avg merge
2h 21m
Merged PRs (30d)
3

Description

Currently access tokens are specified according to [section 5](https://matrix.org/docs/spec/client_server/r0.6.0#id176), which is very similar to [RFC6750](https://tools.ietf.org/html/rfc6750).
A note clarifies that clients should treat the access token as an opaque byte sequence, but leaves ambiguity with regards to what bytes are actually valid.

Confusingly, RFC6750 specifies that the token should follow the `b64token` grammar, which does *not* require base64 encoding, but instead is a set of characters defined identically as `token68` specified in [RFC7235](https://tools.ietf.org/html/rfc7235). By design, `token68` includes all base64 encoded strings and URI safe strings.

Am I correct in assuming that currently homeservers and clients implicitly follow RFC6750? And if so, I would suggest to make this requirement explicit in the specification.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with section 5 of the Matrix Client-Server API specification and compare its access-token wording with RFC6750 and RFC7235, as linked in the issue. Confirm the intended valid-byte grammar and update the specification to state it explicitly; done means the ambiguity is removed and the relevant references remain consistent.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.