Skip to content

Commit

Permalink
Clarify that UIA stages cannot be attempted twice
Browse files Browse the repository at this point in the history
Fixes #1987

Note: Synapse currently does not care, however the spirit of the text in the spec implies that completed == done forever, so we're just reinforcing it here.
  • Loading branch information
turt2live committed May 30, 2019
1 parent d2232ac commit 0f62311
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
1 change: 1 addition & 0 deletions changelogs/client_server/newsfragments/2054.clarification
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Clarify that User-Interactive Authentication stages cannot be attempted more than once.
11 changes: 6 additions & 5 deletions specification/client_server_api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -453,11 +453,10 @@ params
presented, that type may be present as a key in this dictionary. For example,
the public part of an OAuth client ID could be given here.
session
This is a session identifier that the client must pass back to the home
server, if one is provided, in subsequent attempts to authenticate in the same
API call.
This is a session identifier that the client must pass back to the homeserver,
if one is provided, in subsequent attempts to authenticate in the same API call.

The client then chooses a flow and attempts to complete one of the stages. It
The client then chooses a flow and attempts to complete the first stage. It
does this by resubmitting the same request with the addition of an ``auth``
key in the object that it submits. This dictionary contains a ``type`` key whose
value is the name of the authentication type that the client is attempting to complete.
Expand Down Expand Up @@ -558,7 +557,9 @@ message in the standard format. For example:
}
If the client has completed all stages of a flow, the homeserver performs the
API call and returns the result as normal.
API call and returns the result as normal. Completed stages cannot be re-tried;
The client must abandon the current session and start over. Homeservers should
treat retries as authentication errors.

Some authentication types may be completed by means other than through the
Matrix client, for example, an email confirmation may be completed when the user
Expand Down

0 comments on commit 0f62311

Please sign in to comment.