Quentin Gliech f6a7dc5f01 Register with a password from POST /register
The registration page had two steps: `/register` picked between a password
and an upstream provider, then `/register/password` collected the username,
email and password. Both now live on `/register`, whose `POST` handler runs
the provider branch first and otherwise hands the form to the registration
body, which stays in `password.rs` as a helper.

The page renders the username, email, password and terms-of-service fields,
the captcha and the provider buttons in a single form. The provider buttons
submit that same form, so they are marked `formnovalidate` to skip the
validation of the fields they do not use, and come after the primary submit
button so that Enter still registers.

`/register/password` is gone; a `GET` on it redirects to `/register` with the
query string it was given, so bookmarks and links keep working. Its
`?username=` prefill has no producer left and is dropped.

`GET /register` now renders the page whenever password registration is
enabled, instead of redirecting to `/register/password` when there is no
upstream provider. Without password registration, a single provider still
gets redirected to directly, and no provider at all now redirects to
`/login`, where `/register/password` used to send that case.

An unknown or disabled provider gives a 404 through an inline `GenericError`
rather than the route-wide `RouteError`, and an expired CSRF token on the
password path now sends the user back to `/register` instead of failing the
request.
2026-10-09 18:22:13 +00:00
2026-10-06 15:13:57 +00:00
2026-05-12 12:13:46 +02:00
2026-10-06 15:50:28 +00:00
2026-10-06 15:50:28 +00:00
2024-09-10 14:28:55 +02:00
2025-06-12 10:31:53 +02:00
2026-10-05 11:44:30 +00:00

Matrix Authentication Service

MAS (Matrix Authentication Service) is a user management and authentication service for Matrix homeservers, written and maintained by Element. You can directly run and manage the source code in this repository, available under an AGPL license (or alternatively under a commercial license from Element). Support is not provided by Element unless you have a subscription.

It has been created to support the migration of Matrix to a next-generation of auth APIs per MSC3861.

See the Documentation for information on installation and use.

You can learn more about Matrix and next-generation auth at areweoidcyet.com.

🚀 Getting started

This component is developed and maintained by Element. It gets shipped as part of the Element Server Suite (ESS) which provides the official means of deployment.

ESS is a Matrix distribution from Element with focus on quality and ease of use. It ships a full Matrix stack tailored to the respective use case.

There are three editions of ESS:

  • ESS Community - the free Matrix distribution from Element tailored to small-/mid-scale, non-commercial community use cases
  • ESS Pro - the commercial Matrix distribution from Element for professional use
  • ESS TI-M - a special version of ESS Pro focused on the requirements of TI-Messenger Pro and ePA as specified by the German National Digital Health Agency Gematik

💬 Community room

Developers and users of Matrix Authentication Service can chat in the #matrix-auth:matrix.org room on Matrix.

🛠️ Standalone installation and configuration

The best way to get a modern Element Matrix stack is through the Element Server Suite, which includes MAS.

The MAS documentation describes how to install and configure MAS. We recommend using the Docker image or the pre-built binaries.

📖 Translations

Matrix Authentication Service is available in multiple languages. Anyone can contribute to translations through Localazy.

🏗️ Contributing

See the contribution guidelines for information on how to contribute to this project.

Copyright 2021-2024 The Matrix.org Foundation C.I.C.

Copyright 2024, 2025 New Vector Ltd.

Copyright 2025, 2026 Element Creations Ltd.

This software is dual-licensed by Element Creations Ltd (Element). It can be used either:

(1) for free under the terms of the GNU Affero General Public License (as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version); OR

(2) under the terms of a paid-for Element Commercial License agreement between you and Element (the terms of which may vary depending on what you and Element have agreed to). Unless required by applicable law or agreed to in writing, software distributed under the Licenses is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Licenses for the specific language governing permissions and limitations under the Licenses.

S
Description
No description provided
Readme AGPL-3.0
44 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 83.7%
TypeScript 9.4%
HTML 3.9%
Open Policy Agent 1.2%
CSS 1%
Other 0.7%