@@ -439,7 +439,7 @@ endpoints it supports.
439439Most API endpoints require the user to identify themselves by presenting
440440previously obtained credentials in the form of an access token.
441441An access token is typically obtained via the [ Login] ( #login ) or
442- [ Registration] ( #account-registration-and-management ) processes. Access tokens
442+ [ Registration] ( #account-registration ) processes. Access tokens
443443can expire; a new access token can be generated by using a refresh token.
444444
445445{{% boxes/note %}}
@@ -494,7 +494,7 @@ used to generate a new access token and refresh token, the new access
494494and refresh tokens are now bound to the device associated with the
495495initial refresh token.
496496
497- By default, the [ Login] ( #login ) and [ Registration] ( #account-registration-and-management )
497+ By default, the [ Login] ( #login ) and [ Registration] ( #account-registration )
498498processes auto-generate a new ` device_id ` . A client is also free to
499499generate its own ` device_id ` or, provided the user remains the same,
500500reuse a device: in either case the client should pass the ` device_id ` in
@@ -560,9 +560,11 @@ specifying the device ID it is already using to the login API.
560560with an ` M_USER_LOCKED ` error code, cannot obtain a new access token until
561561the account has been [ unlocked] ( #account-locking ) .
562562
563- ### User-Interactive Authentication API
563+ ### Legacy API
564564
565- #### Overview
565+ #### User-Interactive Authentication API
566+
567+ ##### Overview
566568
567569Some API endpoints require authentication that interacts with the user.
568570The homeserver may provide many different ways of authenticating, such
@@ -586,7 +588,7 @@ the flows in order must result in an HTTP 401 response, as defined
586588below. When all stages in a flow are complete, authentication is
587589complete and the API call succeeds.
588590
589- #### User-interactive API in the REST API
591+ ##### User-interactive API in the REST API
590592
591593In the REST API described in this specification, authentication works by
592594the client and server exchanging JSON dictionaries. The server indicates
@@ -764,7 +766,7 @@ auth by offering a stage with only the `m.login.dummy` auth type, but they
764766must still give a 401 response to requests with no auth data.
765767{{% /boxes/note %}}
766768
767- #### Example
769+ ** Example**
768770
769771At a high level, the requests made for an API call completing an auth
770772flow with three stages will resemble the following diagram:
@@ -806,7 +808,7 @@ flow with three stages will resemble the following diagram:
806808 |_______________________|
807809```
808810
809- #### Authentication types
811+ ##### Authentication types
810812
811813This specification defines the following auth types:
812814- ` m.login.password `
@@ -817,7 +819,7 @@ This specification defines the following auth types:
817819- ` m.login.dummy `
818820- ` m.login.registration_token `
819821
820- ##### Password-based
822+ ###### Password-based
821823
822824
823825| Type | Description |
@@ -876,7 +878,7 @@ explicitly as follows:
876878In the case that the homeserver does not know about the supplied 3PID,
877879the homeserver must respond with 403 Forbidden.
878880
879- ##### Google ReCaptcha
881+ ###### Google ReCaptcha
880882
881883| Type | Description |
882884| ---------------------| ------------------------------------------------------|
@@ -893,7 +895,7 @@ follows:
893895}
894896```
895897
896- ##### Single Sign-On
898+ ###### Single Sign-On
897899
898900| Type | Description |
899901| ---------------| --------------------------------------------------------------------------------------|
@@ -903,7 +905,7 @@ A client wanting to complete authentication using SSO should use the
903905[ Fallback] ( #fallback ) mechanism. See [ SSO during User-Interactive
904906Authentication] ( #sso-during-user-interactive-authentication ) for more information.
905907
906- ##### Email-based (identity / homeserver)
908+ ###### Email-based (identity / homeserver)
907909
908910| Type | Description |
909911| --------------------------| ------------------------------------------------------------------------------------------------------------------|
@@ -932,7 +934,7 @@ follows:
932934Note that ` id_server ` (and therefore ` id_access_token ` ) is optional if
933935the [ ` /requestToken ` ] ( #post_matrixclientv3registeremailrequesttoken ) request did not include them.
934936
935- ##### Phone number/MSISDN-based (identity / homeserver)
937+ ###### Phone number/MSISDN-based (identity / homeserver)
936938
937939| Type | Description |
938940| ------------------| ----------------------------------------------------------------------------------------------------------------|
@@ -961,7 +963,7 @@ follows:
961963Note that ` id_server ` (and therefore ` id_access_token ` ) is optional if
962964the [ ` /requestToken ` ] ( #post_matrixclientv3registermsisdnrequesttoken ) request did not include them.
963965
964- ##### Dummy Auth
966+ ###### Dummy Auth
965967
966968| Type | Description |
967969| ------------------| ------------------------------------------------------------------------|
@@ -987,7 +989,7 @@ just the type and session, if provided:
987989}
988990```
989991
990- ##### Token-authenticated registration
992+ ###### Token-authenticated registration
991993
992994{{% added-in v="1.2" %}}
993995
@@ -1031,7 +1033,7 @@ in the registration process that their token has expired.
10311033
10321034{{% http-api spec="client-server" api="registration_tokens" %}}
10331035
1034- ##### Terms of service at registration
1036+ ###### Terms of service at registration
10351037
10361038{{% added-in v="1.11" %}}
10371039
@@ -1154,7 +1156,7 @@ user during registration, if applicable.
11541156
11551157{{% definition path="api/client-server/definitions/m.login.terms_params" %}}
11561158
1157- #### Fallback
1159+ ##### Fallback
11581160
11591161Clients cannot be expected to be able to know how to process every
11601162single login type. If a client does not know how to handle a given login
@@ -1195,7 +1197,7 @@ with just the session ID:
11951197}
11961198```
11971199
1198- ##### Example
1200+ ** Example**
11991201
12001202A client webapp might use the following JavaScript to open a popup
12011203window which will handle unknown login types:
@@ -1251,7 +1253,7 @@ function unknownLoginType(homeserverUrl, apiEndpoint, loginType, sessionID, onCo
12511253}
12521254```
12531255
1254- #### Identifier types
1256+ ##### Identifier types
12551257
12561258Some authentication mechanisms use a user identifier object to identify
12571259a user. The user identifier object has a ` type ` field to indicate the
@@ -1264,7 +1266,7 @@ This specification defines the following identifier types:
12641266- ` m.id.thirdparty `
12651267- ` m.id.phone `
12661268
1267- ##### Matrix User ID
1269+ ###### Matrix User ID
12681270
12691271| Type | Description |
12701272| -------------| --------------------------------------------|
@@ -1281,7 +1283,7 @@ ID.
12811283}
12821284```
12831285
1284- ##### Third-party ID
1286+ ###### Third-party ID
12851287
12861288| Type | Description |
12871289| -------------------| ---------------------------------------------------------------------------|
@@ -1301,7 +1303,7 @@ ID media.
13011303}
13021304```
13031305
1304- ##### Phone number
1306+ ###### Phone number
13051307
13061308| Type | Description |
13071309| --------------| -------------------------------------------|
@@ -1327,7 +1329,7 @@ The `country` is the two-letter uppercase ISO-3166-1 alpha-2 country
13271329code that the number in ` phone ` should be parsed as if it were dialled
13281330from.
13291331
1330- ### Login
1332+ #### Login
13311333
13321334A client can obtain access tokens using the [ ` /login ` ] ( #post_matrixclientv3login ) API.
13331335
@@ -1399,7 +1401,7 @@ a token for their user ID if supported by the homeserver using
13991401
14001402{{% http-api spec="client-server" api="logout" %}}
14011403
1402- #### Appservice Login
1404+ ##### Appservice Login
14031405
14041406{{% added-in v="1.2" %}}
14051407
@@ -1436,7 +1438,7 @@ If the access token does correspond to an appservice, but the user id does
14361438not lie within its namespace then the homeserver will respond with an
14371439errcode of ` M_EXCLUSIVE ` .
14381440
1439- #### Login Fallback
1441+ ##### Login Fallback
14401442
14411443If a client does not recognize any or all login flows it can use the
14421444fallback login API:
@@ -1456,11 +1458,13 @@ forwarded to the login endpoint during the login process. For example:
14561458
14571459 GET /_matrix/static/client/login/?device_id=GHTYAJCE
14581460
1459- ### Account registration and management
1461+ #### Account registration
14601462
14611463{{% http-api spec="client-server" api="registration" %}}
14621464
1463- #### Notes on password management
1465+ #### Account management
1466+
1467+ ##### Password management
14641468
14651469{{% boxes/warning %}}
14661470Clients SHOULD enforce that the password provided is suitably complex.
@@ -1469,6 +1473,16 @@ number and a symbol and be at a minimum 8 characters in length. Servers
14691473MAY reject weak passwords with an error code ` M_WEAK_PASSWORD ` .
14701474{{% /boxes/warning %}}
14711475
1476+ {{% http-api spec="client-server" api="password_management" %}}
1477+
1478+ ##### Account deactivation
1479+
1480+ {{% http-api spec="client-server" api="account_deactivation" %}}
1481+
1482+ ### OAuth 2.0 API
1483+
1484+ ### Account moderation
1485+
14721486#### Account locking
14731487
14741488{{% added-in v="1.12" %}}
0 commit comments