-
Notifications
You must be signed in to change notification settings - Fork 382
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MSC3105: Previewing UIA flows #3105
base: old_master
Are you sure you want to change the base?
Conversation
We could also completely replace UIA with some other system that either has built-in previewing | ||
of similar constructs, or no need to perform auth in this way. This is not considered feasible by | ||
this proposal in the timespan it intends to land within. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A third option would be to just spec what synapse currently does for /register
. If no auth dict is present, it always returns 401 for a response. If no auth is needed, submitting a dummy stage is required, so this does not cause any conflicts. Of course clients can only rely on that behaviour on endpoints, that are marked as requiring UIA. I was actually about to submit a spec PR, because I thought this was just the spec being unclear. I would prefer that approach, because it fits what servers and clients already do, but it of course is not stateless (although clients can just throw away the session and we could possibly move the session creation to the first submitted auth dict) and could lead to accidental account deactivation or such, if servers implement UIA wrong.
Servers are not required to predict the outcome of an `OPTIONS` request which also specifies a | ||
`session` field - UIA does not lend itself to being able to determine if the flows would change and | ||
thus is not expected to produce a sensible result. These secondary `OPTIONS` requests would most | ||
likely be automatic preflight checks done by web browsers anyhow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is meaning to say that including a session should result in a 200 so the client doesn't fail preflight.
A bit difficult to determine how we'd figure out preflight for an unstarted session though...
|
||
## Proposal | ||
|
||
When a UIA-supported endpoint is approached with an `OPTIONS` request the server would respond with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OPTIONS
doesn't seem right. HEAD
is probably the better method to use here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HEAD
isn't right either, GET
would be better
Rendered