mirror of
https://github.com/element-hq/synapse.git
synced 2024-12-15 17:51:10 +00:00
Stabilise MSC3231 (Token Based Registration) (#11867)
This commit is contained in:
parent
b3d155a749
commit
02632b3504
8 changed files with 28 additions and 9 deletions
5
changelog.d/11867.feature
Normal file
5
changelog.d/11867.feature
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
Stabilize [MSC3231](https://github.com/matrix-org/matrix-doc/pull/3231).
|
||||||
|
|
||||||
|
Client implementations using `m.login.registration_token` should switch to the stable identifiers:
|
||||||
|
* `org.matrix.msc3231.login.registration_token` in query parameters and request/response bodies becomes `m.login.registration_token`.
|
||||||
|
* `/_matrix/client/unstable/org.matrix.msc3231/register/org.matrix.msc3231.login.registration_token/validity` becomes `/_matrix/client/v1/register/m.login.registration_token/validity`.
|
|
@ -148,7 +148,7 @@ Here's an example featuring all currently supported keys:
|
||||||
"address": "33123456789",
|
"address": "33123456789",
|
||||||
"validated_at": 1642701357084,
|
"validated_at": 1642701357084,
|
||||||
},
|
},
|
||||||
"org.matrix.msc3231.login.registration_token": "sometoken", # User has registered through the flow described in MSC3231
|
"m.login.registration_token": "sometoken", # User has registered through a registration token
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -84,6 +84,21 @@ process, for example:
|
||||||
wget https://packages.matrix.org/debian/pool/main/m/matrix-synapse-py3/matrix-synapse-py3_1.3.0+stretch1_amd64.deb
|
wget https://packages.matrix.org/debian/pool/main/m/matrix-synapse-py3/matrix-synapse-py3_1.3.0+stretch1_amd64.deb
|
||||||
dpkg -i matrix-synapse-py3_1.3.0+stretch1_amd64.deb
|
dpkg -i matrix-synapse-py3_1.3.0+stretch1_amd64.deb
|
||||||
```
|
```
|
||||||
|
# Upgrading to v1.(next)
|
||||||
|
|
||||||
|
## Stablisation of MSC3231
|
||||||
|
|
||||||
|
The unstable validity-check endpoint for the
|
||||||
|
[Registration Tokens](https://spec.matrix.org/v1.2/client-server-api/#get_matrixclientv1registermloginregistration_tokenvalidity)
|
||||||
|
feature has been stabilised and moved from:
|
||||||
|
|
||||||
|
`/_matrix/client/unstable/org.matrix.msc3231/register/org.matrix.msc3231.login.registration_token/validity`
|
||||||
|
|
||||||
|
to:
|
||||||
|
|
||||||
|
`/_matrix/client/v1/register/m.login.registration_token/validity`
|
||||||
|
|
||||||
|
Please update any relevant reverse proxy or firewall configurations appropriately.
|
||||||
|
|
||||||
# Upgrading to v1.53.0
|
# Upgrading to v1.53.0
|
||||||
|
|
||||||
|
|
|
@ -241,7 +241,7 @@ expressions:
|
||||||
# Registration/login requests
|
# Registration/login requests
|
||||||
^/_matrix/client/(api/v1|r0|v3|unstable)/login$
|
^/_matrix/client/(api/v1|r0|v3|unstable)/login$
|
||||||
^/_matrix/client/(r0|v3|unstable)/register$
|
^/_matrix/client/(r0|v3|unstable)/register$
|
||||||
^/_matrix/client/unstable/org.matrix.msc3231/register/org.matrix.msc3231.login.registration_token/validity$
|
^/_matrix/client/v1/register/m.login.registration_token/validity$
|
||||||
|
|
||||||
# Event sending requests
|
# Event sending requests
|
||||||
^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/redact
|
^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/redact
|
||||||
|
|
|
@ -81,7 +81,7 @@ class LoginType:
|
||||||
TERMS: Final = "m.login.terms"
|
TERMS: Final = "m.login.terms"
|
||||||
SSO: Final = "m.login.sso"
|
SSO: Final = "m.login.sso"
|
||||||
DUMMY: Final = "m.login.dummy"
|
DUMMY: Final = "m.login.dummy"
|
||||||
REGISTRATION_TOKEN: Final = "org.matrix.msc3231.login.registration_token"
|
REGISTRATION_TOKEN: Final = "m.login.registration_token"
|
||||||
|
|
||||||
|
|
||||||
# This is used in the `type` parameter for /register when called by
|
# This is used in the `type` parameter for /register when called by
|
||||||
|
|
|
@ -38,4 +38,4 @@ class UIAuthSessionDataConstants:
|
||||||
# used during registration to store the registration token used (if required) so that:
|
# used during registration to store the registration token used (if required) so that:
|
||||||
# - we can prevent a token being used twice by one session
|
# - we can prevent a token being used twice by one session
|
||||||
# - we can 'use up' the token after registration has successfully completed
|
# - we can 'use up' the token after registration has successfully completed
|
||||||
REGISTRATION_TOKEN = "org.matrix.msc3231.login.registration_token"
|
REGISTRATION_TOKEN = "m.login.registration_token"
|
||||||
|
|
|
@ -368,7 +368,7 @@ class RegistrationTokenValidityRestServlet(RestServlet):
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
GET /_matrix/client/unstable/org.matrix.msc3231/register/org.matrix.msc3231.login.registration_token/validity?token=abcd
|
GET /_matrix/client/v1/register/m.login.registration_token/validity?token=abcd
|
||||||
|
|
||||||
200 OK
|
200 OK
|
||||||
|
|
||||||
|
@ -378,9 +378,8 @@ class RegistrationTokenValidityRestServlet(RestServlet):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
PATTERNS = client_patterns(
|
PATTERNS = client_patterns(
|
||||||
f"/org.matrix.msc3231/register/{LoginType.REGISTRATION_TOKEN}/validity",
|
f"/register/{LoginType.REGISTRATION_TOKEN}/validity",
|
||||||
releases=(),
|
releases=("v1",),
|
||||||
unstable=True,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(self, hs: "HomeServer"):
|
def __init__(self, hs: "HomeServer"):
|
||||||
|
|
|
@ -1154,7 +1154,7 @@ class AccountValidityBackgroundJobTestCase(unittest.HomeserverTestCase):
|
||||||
|
|
||||||
class RegistrationTokenValidityRestServletTestCase(unittest.HomeserverTestCase):
|
class RegistrationTokenValidityRestServletTestCase(unittest.HomeserverTestCase):
|
||||||
servlets = [register.register_servlets]
|
servlets = [register.register_servlets]
|
||||||
url = "/_matrix/client/unstable/org.matrix.msc3231/register/org.matrix.msc3231.login.registration_token/validity"
|
url = "/_matrix/client/v1/register/m.login.registration_token/validity"
|
||||||
|
|
||||||
def default_config(self):
|
def default_config(self):
|
||||||
config = super().default_config()
|
config = super().default_config()
|
||||||
|
|
Loading…
Reference in a new issue