-
Notifications
You must be signed in to change notification settings - Fork 385
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
MSC3231: Token authenticated registration #3231
MSC3231: Token authenticated registration #3231
Conversation
Signed-off-by: Callum Brown <callum@calcuode.com>
Signed-off-by: Callum Brown <callum@calcuode.com>
This comment has been minimized.
This comment has been minimized.
@cvwright Could I ask that you convert your question into an inline discussion on the PR? It allows for threading an easier management of discussions as the proposal evolves. Otherwise, great question! |
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 excellent for a first draft! Short and sweet, though no doubt additional conclusions will be added as discussions progress.
I'm happy that token management is left as an implementation detail. One could argue that various features could be piled on top, such as communicating the amount of uses left on a particular token back to the client. But realistically that would only add unnecessary complication (plus not being easy to do with /register
).
As for your initial questions:
All the other UIAA auth types start m.login, so should I stick with that even though it's registration rather than login?
My personal preference is to stick with m.login
(which is indeed odd as /login
does not use UIAA, but alas...) for consistency, as well as not to confuse people with thinking that the various m.login.*
types cannot be used for registration. It may be a nice idea to rename them all in a future, sweeping change though.
Is the unstable prefix bit right?
Yep. org.matrix.msc3231*
is fair game, and it looks like a prefix is indeed only required for the registration type. I had one small comment about the wording, but otherwise it looks correct.
Signed-off-by: Callum Brown <callum@calcuode.com>
Signed-off-by: Callum Brown <callum@calcuode.com>
Signed-off-by: Callum Brown <callum@calcuode.com>
It would be great to have another MSC on the topic of token management. Agreed that this does not feel like the right place for it. Currently Midnight has no HTTP interface for managing or creating tokens. If there were a standard way to do it, I'd be happy to take a stab at implementing that spec. |
@anoadragon453 I agree now that it should stick to Or you could have I can't see anywhere in the spec if it says dashes or underscores are preferred. Edit: I've gone with |
As @deepbluev7 mentioned in a Matrix room:
That would also entail specifying how tokens can be invalidated (time based, number of uses etc.) |
Also, I've been having a go at a proof-of-concept in Synapse, and found that (similar to captchas) there should be a dummy stage after the token stage if that flow would otherwise only contain the token stage. That avoids the server seeing a complete flow and doing the registration if clients are actually trying to complete a different flow which might have 3PIDs after the token stage. (I'm unsure if that's intelligible...) Should that be mentioned in the MSC? Edit: I don't think it should be. The spec talks about it for m.login.dummy. |
Could we please stick to threads on this MSC for any comments people have, so that it will be easier to see, what is resolved and what is still being discussed? Github sadly gets messy quickly otherwise D: Just use a random line, if you can't figure out where to put it. |
This is consistent with the other UIAA auth types, and does not suggest that other `m.login.*` types cannot be used for registration. Signed-off-by: Callum Brown <callum@calcuode.com>
46dcf00
to
aa8e896
Compare
Signed-off-by: Callum Brown <callum@calcuode.com>
Signed-off-by: Callum Brown <callum@calcuode.com>
This allows tokens to be used easily in query parameters Signed-off-by: Callum Brown <callum@calcuode.com>
Signed-off-by: Callum Brown <callum@calcuode.com>
Spec PR: #3616 |
Merged 🎉 |
Rendered
Signed-off-by: Callum Brown callum@calcuode.com
A couple questions:
All the other UIAA auth types start[yes]m.login
, so should I stick with that even though it's registration rather than login?Is the unstable prefix bit right?[yes]